首页 > Web开发 > 详细

js 原型链

时间:2019-12-12 20:30:44      阅读:79      评论:0      收藏:0      [点我收藏+]

1.每个函数都有一个 prototype 属性指向原型对象。函数创建的实例对象有一个__proto__属性指向该函数的原型对象。函数的原型对象的constructor属性指向该函数。

function Peple(){
    
}
var p1 = new Peple();      //创建Peple的实例对象
var p_proto = Peple.prototype // Peple的原型对象
console.log(p_proto === p1.__proto__)  // true
console.log(p_proto.constructor === Peple) // true

p_proto.myName = "test";  //   在原型对象上添加myName属性
console.log(p1.__proto__.myName)  / / test    实例对象通过__proto__访问原型对象
console.log(p1.myName)    // test   (实例对象没有的属性会继续往上到原型对象上查找)

2.原型对象 p_proto 实际上是Object 的实例

console.log(Object.prototype === p_proto.__proto__)  // true
console.log(Object.prototype.__proto__) // null  (原型链顶端)

3.p1.__proto__.__proto__.__proto__ == null     (p1.__proto__.__proto__ == Object.prototype )

 

 

4.特殊 Function的原型    理解 Function 也是自己的实例对象

console.log(Array.__proto__)        // ƒ () { [native code] }
console.log(Object.__proto__)      // ƒ () { [native code] }
console.log(Function.__proto__)  // ƒ () { [native code] }
console.log(Function.__proto__ === Function.prototype)  // true

console.log(Function.constructor === Function)   // true

 

 

 

 

 

 

 

 

js 原型链

原文:https://www.cnblogs.com/swiftF/p/12031249.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!