提问人:Abolfazl Soltani 提问时间:9/5/2023 更新时间:9/5/2023 访问量:29
函数和对象原型 [duplicate]
Function & object prototype [duplicate]
问:
在本问题中,Person 具有构造函数,pesron1 具有由 Person 创建的实例或对象。 嗨,大家好,为什么这段代码返回false Person.prototype === Object.getPrototypeOf(Person)以及为什么 这段代码有真正的 Person.prototype === Object.getPrototypeOf(person1)?
应该返回 true!!
答:
您的代码中似乎存在误解。让我们分解每个语句,看看发生了什么:
Person.prototype === Object.getPrototypeOf(Person)
:
此语句与函数本身的原型进行比较。换言之,您正在将构造函数的 prototype 属性与 的原型进行比较。由于 和 都指向同一个对象(这是使用 创建的实例的原型对象),因此此语句应返回 。Person.prototype
Person
Person
Person
Person.prototype
Object.getPrototypeOf(Person)
new Person()
true
Person.prototype === Object.getPrototypeOf(person1)
:
此语句与使用构造函数创建的对象的原型进行比较。假设是用 正确创建的,此语句也应该返回,因为继承自 。Person.prototype
person1
Person
person1
new Person()
true
person1
Person.prototype
这里有一个简单的例子来说明这一点:
function Person(name) {
this.name = name;
}
const person1 = new Person("John");
console.log(Person.prototype === Object.getPrototypeOf(Person)); // Should return true
console.log(Person.prototype === Object.getPrototypeOf(person1)); // Should return true
如果代码返回第一个语句,则代码中的其他位置可能会发生异常或不正确的情况。请确保在创建 的实例时使用关键字,并确保代码中没有对代码或代码中的其他位置进行其他修改或赋值。false
new
Person
Person.prototype
Object.getPrototypeOf(Person)
评论
false
prototype
上一个:如何使用购物车产品对象构建购物车
评论