在Javascript中获取分配给扩展函数原型的数组长度
下面的代码将记录a、a.length和b.test。a和b.试验均得出[1,2,3]。编辑,我搞砸了。b、 测试结果未定义。见下面raina的回答 a、 长度为3 b、 test.length因“无法读取未定义的属性'length'而失败” 当a和b检验相等时,为什么会出现这种情况在Javascript中获取分配给扩展函数原型的数组长度,javascript,node.js,Javascript,Node.js,下面的代码将记录a、a.length和b.test。a和b.试验均得出[1,2,3]。编辑,我搞砸了。b、 测试结果未定义。见下面raina的回答 a、 长度为3 b、 test.length因“无法读取未定义的属性'length'而失败” 当a和b检验相等时,为什么会出现这种情况 因为b没有test属性-它是一个函数,它的原型对象是function.prototypeone 但是使用此函数创建的对象将在其原型链中具有此属性(因为prototypeproperty ofb指向已定义test属性
因为
b
没有test
属性-它是一个函数,它的原型对象是function.prototype
one
但是使用此函数创建的对象将在其原型链中具有此属性(因为prototype
property ofb
指向已定义test
属性的对象,因此此
console.log(new b().test.length);
…应该如预期的那样给你3个。
控制台.日志(b.test);
打印未定义的
,而不是[1,2,3]
。谢谢,马特。我现在也看到了。我一定忽略了什么。请参考答案可能重复的感谢雷娜,这很有帮助。
console.log(new b().test.length);