原型对象:
实际上每一个构造函数都有一个名为 `prototype` 的属性,译成中文是原型的意思,`prototype` 的是对象类据类型,称为构造函数的原型对象,每个原型对象都具有 `constructor` 属性代表了该原型对象对应的构造函数
function Person() {

}

// 每个函数都有 prototype 属性
console.log(Person.prototype)


了解了 JavaScript 中构造函数与原型对象的关系后,再来看原型对象具体的作用,如下代码所示
function Person() {
// 此处未定义任何方法
}

// 为构造函数的原型对象添加方法
Person.prototype.sayHi = function () {
console.log('Hi~');
}

// 实例化
let p1 = new Person();
p1.sayHi(); // 输出结果为 Hi~

构造函数 `Person` 中未定义任何方法,这时实例对象调用了原型对象中的方法 `sayHi`,接下来改动一下代码:
function Person() {
// 此处定义同名方法 sayHi
this.sayHi = function () {
console.log('嗨!');
}
}

// 为构造函数的原型对象添加方法
Person.prototype.sayHi = function () {
console.log('Hi~');
}

let p1 = new Person();
p1.sayHi(); // 输出结果为 嗨!
展开
评论