3

ここでいくつかのコードをいじっています。何らかの理由で、関数が長さプロパティを持つ抽象配列 bc として検出されました。大きな問題ではありませんが、bc は 0 ですが、これは奇妙であることがわかりました。

var test_set = [null,
                undefined,
                NaN,
                true,
                false,
                1,
                'a',
                {test:'test'},
                [0], 
                function(){}, 
                /test/
               ];

var index, 
    key,
    test;

function isArrayAbstract (obj) {
    return (obj != null) && (obj.length === +obj.length);
};

for(index = 0; index < test_set.length; index++){
    test = isArrayAbstract(test_set[index]);
    console.log('Mark | ' + test_set[index]);
    console.log(test);
}
4

4 に答える 4

3

lengthプロパティは、関数が期待する引数の数を指定します。

MDNから:

length関数オブジェクトのプロパティであり、関数が期待する引数の数、つまり仮パラメータの数を示します。

(function(){}).length;  // 0
(function(a){}).length; // 1
于 2013-07-05T17:26:27.977 に答える
1

length実際には、関数上のフィールドには目的があります。Function.lengthのMDN ドキュメントから:

関数が期待する引数の数を指定します。

于 2013-07-05T17:28:31.673 に答える