1

原型链

在浏览器内部有一个window对象,它本身有用以下图这样的属性(部分)
图片描述

在创建一个对象的时候

var obj = {};

在执行这个代码的时候,浏览器会加上一句代码

var obj = {
    obj.__proto__ = window.Object.prototype;
};

在obj调用toString()方法时,在直接属性里找不到这个方法,就会顺着其属性__proto__(即window.Object.prototype)找这个方法


在JavaScript中,数组也是一个对象,所以数组也能调用window.Object.prototype的方法,那么究竟是怎么实现这个关系呢?

实现方法:window.Array.prototype也有一个原型(window.Array.prototype.__proto__),这个原型指向的是window.Object.prototype,所以就实现了数组可以调用window.Object.prototype的方法。


joga
23 声望0 粉丝