美文网首页
原型与原型链

原型与原型链

作者: 饥人谷_西瓜 | 来源:发表于2018-10-31 17:40 被阅读0次

    为了共用一些方法,JS 把 toString 和 valueOf 放在一个对象里(暂且叫做公用属性组成的对象)

    然后让每一个对象的 __proto__ 存储这个「公用属性组成的对象」的地址。

    __proto__的读取器(getter)暴露了一个对象的内部 [[Prototype]] 。对于使用对象字面量创建的对象,这个值是 Object.prototype。对于使用数组字面量创建的对象,这个值是 Array.prototype。对于functions,这个值是Function.prototype。对于使用 new fun 创建的对象,其中fun是由js提供的内建构造器函数之一(Array, Boolean, Date, Number, Object, String 等等),这个值总是fun.prototype。对于用js定义的其他js构造器函数创建的对象,这个值就是该构造器函数的prototype属性

    可以打得出以下结论
    var 对象 = new 函数()
    对象.__proto__=== 对象的构造函数.prototype

    又有以下推论
    var number = new Number()
    number.__proto__ = Number.prototype
    Number.__proto__ = Function.prototype // 因为 Number 是 Function 的实例

    var object = new Object()
    object.__proto__ = Object.prototype
    Object.__proto__ = Function.prototype // 因为 Object 是 Function 的实例

    var function = new Function()
    function.__proto__ = Function.prototype
    Function.__proto__ == Function.prototye // 因为 Function 是 Function 的实例

    相关文章

      网友评论

          本文标题:原型与原型链

          本文链接:https://www.haomeiwen.com/subject/feyatqtx.html