美文网首页
JS原型链

JS原型链

作者: WebsnowDrop | 来源:发表于2024-06-30 15:03 被阅读0次

    什么是原型链

    参考 MDN 继承与原型链 - JavaScript | MDN (mozilla.org)

    JavaScript 只有一种结构:对象。每个对象(object)都有一个私有属性指向另一个名为原型(prototype)的对象。原型对象也有一个自己的原型,层层向上直到一个对象的原型为 null。根据定义,null 没有原型,并作为这个原型链(prototype chain)中的最后一个环节。可以改变原型链中的任何成员,甚至可以在运行时换出原型

    举例:

    let a = []
    a.__proto__ === Array.prototype // true
    Array.prototype.__proto__ === Object.prototype //true
    Object.prototype.__proto__ === null //true
    

    上面xxx.__proto__ 在浏览器中用来表示 xxx的原型对象
    遵循 ECMAScript 标准,应该用符号xxx.[[Prototype]] 来表示 xxx 的原型,在浏览器中打印xxx.[[Prototype]] 会报错,Object.getPrototypeOf()可以获得对象的原型对象,上面的例子 可以这样表示

    Object.getPrototypeOf(a) === Array.prototype //true
    Object.getPrototypeOf(Array.prototype) === Object.prototype //true
    Object.getPrototypeOf(Object.prototype) === null //true
    

    如何修改原型

    相关文章

      网友评论

          本文标题:JS原型链

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