在 JavaScript 中是可能存在对象上有一个name属性,同时原型链上也有一个同名的name属性的情况。
以下是一个示例:
function Person() {}
Person.prototype.name = 'prototype name';
const person = new Person();
person.name = 'instance name';
console.log(person.name); // 'instance name'
console.log(person.__proto__.name); // 'prototype name'在这个例子中,首先定义了一个构造函数Person,在其原型上设置了一个name属性。然后创建一个Person的实例person,并在实例上也设置了一个同名的name属性。当访问person.name时,会优先访问实例上的属性,如果实例上没有该属性,才会沿着原型链向上查找。