prototype

作者: xgszl33614 | 来源:发表于2016-05-03 14:45 被阅读44次

    var a = new Object();

    • Object, 即构造函数, 是函数。typeof Object == 'function' ;//true
    • Object.prototype, 即Object的原型, 是对象。typeof Object.prototype == 'object';//true

    只有函数才有prototype属性,prototype != 原型

    构造函数的prototype并不是构造函数的原型,只有Function.__proto__才能代表原型(Function.__proto__就是Function构造函数的原型),Function.prototype是用构造函数构造出来的实例对象的原型,

    原型构成了原型链,原型链的根就是Object.prototype。根的原型为null

    Object.prototype.__proto__;//null
    

    proto

    实现了ecma-262中的 [[Prototype]] ,这是一个内置属性,不可操作,每个实例对象内部都有,指向该对象的原型。
    通常不建议使用 __proto__ 。只有一个地方建议:使用class时,直接定义 __proto__ 属性。
    不过,用来理解原型还是不错的

    原型获取和设置

    可以使用Object.getPrototypeOf()Object.setPrototypeOf()来获取和设置对象的原型。

    相关文章

      网友评论

          本文标题:prototype

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