JavaScript functionのlengthプロパティの使用説明
894 ワード
[1,2,3]. lengthは3,"123"を得ることができる.lengthも3を得ることができて、これはjsを少し知っているのはすべて知っています.
でもlength ,RegExp. length ,"".toString. length ,1..toString. lengthは何を得ますか?
それぞれ1,2,0,1を得て、これらの数字は何を表していますか?
実は関数のlengthが得たのは形パラメータの個数です.
例を簡単に見てみましょう
簡単ではありませんが、関数内部がargumentsによってパラメータを呼び出し、実際にパラメータを定義していない場合、lengthは0しか得られません.
この関数は確かにパラメータを伝達することができ,内部でもパラメータを呼び出すことができるが,lengthは伝達パラメータの個数を知ることができない.関数の実行時にargumentsを通過するしかない.lengthは実パラメータ数を得る.
したがって,関数のlength属性は彼の形パラメータの個数しか得られず,実パラメータの個数は知ることができない.
でもlength ,RegExp. length ,"".toString. length ,1..toString. lengthは何を得ますか?
それぞれ1,2,0,1を得て、これらの数字は何を表していますか?
実は関数のlengthが得たのは形パラメータの個数です.
例を簡単に見てみましょう
function test(a,b,c) {}
test.length // 3
function test(a,b,c,d) {}
test.length // 4
簡単ではありませんが、関数内部がargumentsによってパラメータを呼び出し、実際にパラメータを定義していない場合、lengthは0しか得られません.
function test() { console.log( arguments );}
test.length // 0
この関数は確かにパラメータを伝達することができ,内部でもパラメータを呼び出すことができるが,lengthは伝達パラメータの個数を知ることができない.関数の実行時にargumentsを通過するしかない.lengthは実パラメータ数を得る.
function test() { console.log( arguments.length );}
test(1,2,3); // 3
test(1,2,3,4); // 4
したがって,関数のlength属性は彼の形パラメータの個数しか得られず,実パラメータの個数は知ることができない.