最近,我读到了以下行JavaScript对象与数组原型
var obj = {};
Array.prototype.push.call(obj, 'aaa', 'bbb', 'ccc');
console.log(obj);
{0: "aaa", 1: "bbb", 2: "ccc", length: 3}
我知道它会尝试使用OBJ的背景和经过,其余为参数的文章。之前,我只是用来将每个项目推送到一个数组中。我很好奇这个实现背后的逻辑是什么。它如何将索引设置为值的每个键以及为什么“长度”自动添加到对象?谢谢
因为这push'如何'工作:http://es5.github.io/#x15.4.4.7 – 2014-12-02 17:57:36
事实上,许多阵列方法是......“故意通用的,不要求他们的'this'值是一个Array对象',引用了同一个文档。 – raina77ow 2014-12-02 18:03:36