2015-04-05 100 views

回答

2

这是因为构造函数使用最多3个参数:

Float32Array(buffer [, byteOffset [, length]]); 

在JavaScript中每个函数的长度属性将返回它所需的命名参数的数量。

E.g.

function foo(a, b) {} 
foo.length === 2; // true 

function bar() {} 
bar.length === 0; // true 
7

Float32Array实际上是一个功能。您可以检查是否这样

console.assert(typeof Float32Array === 'function'); 

而且该函数接受三个参数。从相同的文档引用的签名,

Float32Array(buffer [, byteOffset [, length]]); 

引述Function.length documentation

length是一个函数对象的属性,表示该功能多少个参数预计,即正式的数参数。

这就是为什么Float32Arraylength属性始终是3

2

这是对于(对象 - )功能Float32Array参数数目的长度。

然而,当你实例化它length将代表索引数:

console.log(Float32Array.length); // => 3, number of arguments 

var a = new Float32Array(10);  // create an instance with 10 indexes 
console.log(a.length);    // => 10, number of indexes