2017-06-12 19 views
0

という名前の矢印機能にarguments.lengthをと混同:私はarguments.lengthを使用して<strong>という名前の関数</strong>の長さを取得しようとしていた

var a = function(b,c){ 
console.log(arguments.length); 
}; 
a(1,2); //2 (this is what I'm expecting) 


(function(b,c){ 
console.log(arguments.length); 
})(1,2); //it returns 2 also 


(b,c) => { 
console.log(arguments.length); 
}; 
(1,2); //2 also 

を私は名前の矢印機能を使用しようとしたとき:

let a = (b,c) => { 
console.log(arguments.length); 
}; 
a(1,2); //ReferenceError: arguments is not defined 

と、この:

((b,c) => { 
console.log(arguments.length); 
})(1,2); //ReferenceError: arguments is not defined 

私は本当に今混乱しています

答えて

1

Arrow functions do not bind the arguments magic variable.あなたの最初のテストは単に間違っています。式(1,2)の戻り値は2ですが、これはarguments.lengthのためではなく、2,演算子の最後のオペランドであるためです。 "匿名の矢印関数"はそのサンプルでも呼び出されていません。

関連する問題

 関連する問題