prototype(原型):prototype是Function对象的一个属性,它定义了构造函数制造出的对象的公用祖先(属性和方法),可以继承该原型的属性和方法。原型也是对象。
__proto__(隐式原型):没个对象的__proto__属性指向自身构造函数的prototype。
constructor(构造器):返回对创建此对象的数组函数引用。
原型链基本概念:每个对象都会在其内部初始化一个属性,就是 proto,当我们访问一个对象的属性 时,如果这个对象内部不存在这个属性,那么他就会去proto里找这个属性,这个proto又会有自己的proto,于是就这样 一直找下去,也就是我们平时所说的原型链的概念。
原型链--实现对象间的联系即继承的方法。
//es5写法
var Person = function(name,age){
this.name = name;
};
Person.prototype.sayName = function() {
console.log('my name is'+this.name)
};
Person.prototype.age = 18;
var person = new Person();
person.sayName('jade');
//ES6写法:
class Person {
constructor(name,age){
this.name = name;
this.age = age
}
sayName(){
console.log(`my name is ${this.name}`)
}
}
let person = new Person('jade', 18);
person.sayName()
//ES6的继承
class Son extends Person{
constructor(){
super();
}
}
添加描述
// 结果
console.log(person.__proto__===Person.prototype); // true
console.log(person.constructor === Person); // true
console.log(Person.property.constructor === Person)
console.log(Person.prototype.__proto__ === Object.prototype); // true
console.log(Object.prototype.constructor === Object) // true
console.log(Object.prototype.__proto__ === null) // true
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。