function Person(name) {
this.name = name;
}
Person.prototype.sayHello = function() {
console.log('Hello, ' + this.name);
};
const person1 = new Person('Alice');
person1.sayHello(); // 输出: Hello, Alice
person1
的原型是Person.prototype
,也就是person.__proto__
指向Person.prototype
- 当调用
person1.sayHello()
时,
- 首先查找
person1
是否有sayHello()
方法,
- 如果没有,会去查找
person.__proto__
(即Person.prototype
)有没有这个方法,
- 假设
Person.prototype
还是没有sayHello()
方法,
- 则会查找
Person.prototype.__proto__
(即Object.prototype
) ,
- 如果
Object.prototype
没有该方法,
- 则查找
Object.prototype.__proto__
,
- 而
Object.prototype.__proto__ = null
原型链结束。