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 原型链结束。