JavaScript原型,原型链 ? 有什么特点?

这东西是真的很难理解,下面这个简单的图希望能够帮到你

 

 

1. 对象中是没有prototype属性的 。

var obj = {}
console.log(obj.prototype)      // undefined

 

2.函数中是没有__proto__属性的。

var obj2 = function(){}
console.log(obj2.__proto__);   // undefined

 

 

 

 

console.log(a.__proto__);   // constructor: ƒ Object()
console.log(a.__proto__ === a.constructor.prototype)  // true

 

 

 

 

 

var A = function(){ }

var a = new A()

console.log(a.__proto__);   // A
console.log(a.__proto__ ===  a.constructor.prototype);  // true

 

 

 

var a1 = {a:1}
var a2 = Object.create(a1)  
console.log(a2.__proto__);   // Object {a: 1}
console.log(a2.__proto__ === a1.constructor.prototype);   // false

 Object.create(null) 创建的对象是一个空对象,在该对象上没有继承 Object.prototype 原型链上的属性或者方法

 

 

 

var A = function(){ }

var a = new A()

console.log(a.__proto__);     //  constructor: ƒ A()
console.log(a.__proto__.__proto__);    //  constructor: ƒ Object()

console.log(a.__proto__.__proto__.__proto__);     //  null

 

posted @ 2020-04-01 21:11  Mr_Riven  阅读(397)  评论(0编辑  收藏  举报