首页 > 应用开发 > Java > JavaScript 原型及原型链
原型对象
原型对象:我们创建的每个函数都会有一个 prototype(原型)属性,这个属性是一个指针,指向一个对象,这个对象就是通过调用构造函数而创建的那个对象实例的原型对象。
简单来说,无论什么时候,只要创建一个新的函数,就会为该函数创建一个prototype属性,这个属性指向函数的原型对象。
// 构造函数 Person
function Person() {
};
// 原型添加属性
Person.prototype.name = 'Tom';
Person.prototype.sayName = function () {
alert(this.name);
};
// 创建实例
var person1 = new Person();
person1.sayName(); // Tom
// prototype属性指向函数的原型对象
console.log(Person.prototype); // {name: "Tom", sayName: ƒ, constructor: ƒ}
123456789101112131415161718
原型对象的用途:包含可以由特定类型的所有实例共享的属性和方法。
使用原型对象的好处:可以让所有实例共享它所包含的属性和方法。
constructor:所有的原型对象都会有一个constructor属性,这个属性是一个指向prototype属性所在函数的指针,也就是指向与之关联的构造函数。
// constructor属性指向与之关联的构 造函数 郑州祛胎记治疗价钱 http://www.zykdbhk
console.log(Person.prototype.constructor); // ƒ Person() { }
console.log( Person.prototype.constructor === Person ); // true
__proto__:当调用构造函数创建一个新实例后,该实例内部将包含一个指针__proto__,指向构造函数的原型对象。__proto__属性存在于实例与构造函数的原型对象之间。
// __proto__属性指向该构造函数的原型对象
console.log( person1.__proto__ ); // {name: "Tom", sayName: ƒ, constructor: ƒ}
console.log( person1.__proto__ === Person.prototype ); // true
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69979119/viewspace-2709500/ ,如需转载,请注明出处,否则将追究法律责任。