prototype

2017-04-06  本文已影响0人  葶寳寳

官方描述: 函数对象被创建时,Function构造器产生的函数对象会运行这样一些代码:

 this.prototype = {constructor: this};

1.prototype是函数对象的属性,普通对象没有该属性:

普通对象没有prototype属性.png 函数对象prototype.png

2.函数对象和普通对象都有__proto__属性,它指向该对象原型的prototype

构造函数、实例与原型关系图

构造函数、实例与原型关系图.png
function Person() {}
let person = new Person();

// 在所有实现中都无法访问,以下的访问方式已被弃用。
console.log(Person.__proto__ === Function.prototype);
console.log(person.__proto__ === Person.prototype);

// 判断__proto__的指向
console.log(Object.prototype.isPrototypeOf(person)); 
console.log(Object.getPrototypeOf(person) === Func.prototype); // 推介

// 判断Func原型的constructor指向
console.log(Person.prototype.constructor === Person)

// Person和person中的constructor属性指向它的构造函数
console.log(person.constructor === Person);
console.log(Person.constructor === Function);
上一篇 下一篇

猜你喜欢

热点阅读