疑问:JS类似数组的对象
JS中没有类的概念,OO中的类在JS中通过对象来实现,而OO中的继承机制则是透过JS中的原型继承来模拟。
var myObj1 = {};
myObj1.prototype = {};
myObj1.prototype // Object
myObj1的prototype属性指向了一个空对象,控制台输出myObj1.prototype是拥有属性为__proto__的对象,该对象是Object.prototype的一个引用,即:myObj1.prototype.__proto__ == Object.prototype。
var myObj2 = {};
myObj2.prototype = {
length: 0,
splice: [].splice
};
myObj2.prototype;
// []
Object.prototype.toString.call(myObj2.prototype);
// "[object Object]"
myObj2的原型中多了几个数组对象拥有的属性,此时myObj2.prototype返回的是一个[],虽然是像个数组,但不是完全意义上的数组,因为用toString调用的时候,返回的的确是一个对象,而不是一个数组。
jQuery中运用了这样的机制,不太明白究竟是什么原理。
现在还没有评论