美文网首页
原型对象和原型链的指向

原型对象和原型链的指向

作者: 冰冰啦 | 来源:发表于2018-10-11 21:42 被阅读0次

    核心:对象.__proto__ === 函数.prototype

    1.先列举几个例子

    var obj = {}
    obj.__proto__ === Object.prototype //true
    var f = function(){}
    f.__proto__ === Function.prototype //true
    f.__proto__.__proto__ === Obiect.prototype //true
    var arr = []
    arr.__proto__ === Array.prototype //true
    arr.__proto__.proto__ === Object.prototype //true
    Array.__proto__ === Function.prototype //true
    
    • prototype是函数的原型对象,及prototype是一个对象,它会被对应的__proto__引用。
    • 自己的__proto__引用的就是构造你的那个构造函数的prototype
    • 所有构造函数的原型链最后都会引用Object的原型,及Object.prototype.而Object.prototype.__proto__ === null

    2.几道关于原型的题

    1.Object.__proto__ === ???
    首先Object是构造函数,类型为函数,那么,函数由什么构造出来的呢? 很明显,是Function,所以Object.__proto__ === Function.prototype
    2.Function.__proto__ === ???
    首先Function类型为构造函数,它还是一个函数,函数是由Function构造出来的,所以Function.__proto__ === Function.prototype

    var temp = new myFunction()
    temp.__proto__ === ???
    

    首先temp是一个函数,它是由myFunction构造出来的,所以temp.__proto__ === myFunction.prototype
    4.特例

    Object.prototype.__proto__ === null
    

    相关文章

      网友评论

          本文标题:原型对象和原型链的指向

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