原型与原型链

2018-05-19  本文已影响0人  遠_

JavaScript仍然大量地使用了对象,为了保证对象之间的联系,JavaScript引入了原型与原型链的概念。

    this.name = name
    this.color = color
    this.bark = () => {
        console.log('wangwang~')
    }
}

const dog1 = new Dog('dog1', 'black')
const dog2 = new Dog('dog2', 'white')

所有对象都有 toString 和 valueOf 属性,那么我们是否有必要给每个对象一个 toString 和 valueOf 呢?
明显不需要。
JS 的做法是把 toString 和 valueOf 放在一个对象里(暂且叫做公用属性组成的对象)
然后让每一个对象的 __ proto __ 存储这个「公用属性组成的对象」的地址。


原型


原型链
JavaScript中所有的对象都是由它的原型对象继承而来。而原型对象自身也是一个对象,它也有自己的原型对象,这样层层上溯,就形成了一个类似链表的结构,这就是原型链。


一个重要的公式

var 对象 = new 函数()
对象.proto === 函数.prototype

函数prototype._ _proto_ _ === object.prototype
函数._ _proto_ _ === function.prototype
function._ _proto_ _ === function.prototype
function.prototype._ _proto_ _ === object.prototype

参考博客

上一篇下一篇

猜你喜欢

热点阅读