美文网首页
什么是原型链?1分钟看懂原型链

什么是原型链?1分钟看懂原型链

作者: 万水千山林 | 来源:发表于2023-04-26 21:32 被阅读0次

    说原型链之前先思考一个问题。

    var fun = function (){}
    fun.toString() // 'function (){}'
    fun 上这个toString方法哪里来的
    
    var arr = [];
    arr.length // 0
    arr 上length 方法又是哪里来的
    

    所有函数上都有一个属性prototype(原型对象)
    所有对象上都有一个私有属性__ proto__

    对象的__ proto__指向其构造函数的prototype

    var obj = new Object()
    obj.__proto__ ===  Object.prototype  // true
    

    prototype是原型对象


    image.png

    可以看到obj就是一个没有任何属性,但是执行obj.toString()却没有报错

    obj.toString()
    // '[object Object]'
    

    原因是obj的构造函数Object()里面有这些方法,当在obj里面找不到toString()时,js就会默认在obj.__ proto__里面寻找,找到就拿出来用,就这样一层接一层的寻找,直到尽头
    尽头是null


    image.png

    这就是原型链

    相关文章

      网友评论

          本文标题:什么是原型链?1分钟看懂原型链

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