javascript - array.prototype.length 给我一个错误是什么

标签 javascript

array.length 和 array.prototype.length 有什么区别?

MDN says它们在功能上应该是等效的。有什么不同?我什么时候应该使用其中一种而不是另一种?为什么后者给我一个错误?

var a = [1,2,3,4,5];
console.log(a.length);//5
console.log(a.prototype.length);// Uncaught TypeError: Cannot read property 'length' of undefined 

最佳答案

Array.prototype是一个数组,其长度初始设置为 0。

数组实例有自己的、特殊的、 self 调整的length属性,所以当你这样做时:

var a = [];
console.log(a.length);

您看到的是a的length属性的值,它不是从其[[Prototype]]继承的。当你这样做时:

console.log(Array.prototype.length);

您将看到 Array.prototype 数组的长度,它是一个具有自己的 length 属性的不同对象。更改 Array 实例的长度不会影响 Array.prototype 的长度,反之亦然。

关于javascript - array.prototype.length 给我一个错误是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27306633/

相关文章:

Javascript:检查函数是否为真

javascript - 在 JavaScript 中从数组到复杂的字符串格式

javascript - 正则表达式仅在不是属性值时才替换字符串

javascript - 使用markerwithlabel类向Marker添加ID或类

javascript - 在我的指令中调用函数会产生错误 : 10 $digest() iterations reached

javascript - 如何在 three.js 轴上旋转 3D 对象?

javascript - Codeception 中的 jQuery 未定义

javascript - JQuery 验证数据存在于带有空格的表中

javascript - 如何使用 moment 将时间转换为百分比

javascript - 无法实现 st_distance_sphere