原型模式
# 原型模式
我们创建的每个函数都有一个 prototype
(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由 特定类型的所有实例共享的属性和方法。如果按照字面意思来理解,那么 prototype
就是通过调用构造函数而创建的那个对象实例的原型对象。
使用原型对象的好处是可以让所有对象实例共享它所包含的属性和方法。换句话说,不必在构造函数中定义对象实例的信息,而是可以将这些信息直接添加到原型对象中。
function Person(){}
Person.prototype.name = 'Uzi';
Person.prototype.age = 22;
Person.prototype.job = 'E-Sports Player';
Person.prototype.sayName = function(){
console.log(this.name);
}
const uzi1 = new Person();
uzi1.sayName();
// 'Uzi'
const uzi2 = new Person();
uzi2.sayName();
// 'Uzi'
// 共用公用方法
console.log(person1.sayName == person2.sayName);
// true
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
与构造函数不同,新对象的这些属性和方法是由所有实例共享的。
# 理解原型对象
只要创建一个新函数,就会根据一组特定的规则为该函数创建一个 prototype
属性,这个属性指向函数的原型对象。在默认情况下,所有原型对象都会自动获得一个 constructor
(构造函数)属性,这个属性是一个指向 prototype
属性所在函数的指针。
创建了自定义的构造函数之后,其原型对象默认只会取得 constructor
属性;
上次更新: 2024/08/14, 04:14:33