gpt4 book ai didi

javascript - 为什么我不能在 JavaScript "isPrototypeOf"中使用对象的原型(prototype)?

转载 作者:行者123 更新时间:2023-12-03 06:22:15 24 4
gpt4 key购买 nike

ES 是否说原型(prototype)是所有对象的属性?是的,“构造函数”和“对象实例”都是函数/对象,那么它们都应该具有“原型(prototype)”属性。

但是当我尝试时:

var Person=function(){
this.name='abc';
this.age=30;
};
var o1=new Person();
var o2=new Person();
console.log(o2.prototype.isPrototypeOf(o1));

控制台打印一个异常:

console.log(o2.prototype.isPrototypeOf(o1));
^
TypeError: Cannot read property 'isPrototypeOf' of undefined

这个错误是什么?我知道

console.log(Person.prototype.isPrototypeOf(o1));

有效。但为什么“Person”有带有 isPrototypeOf 方法的原型(prototype),而 o2 却没有这样的属性/方法?

然后我尝试了这个:

console.log(o2.prototype.prototype.isPrototypeOf);

它也失败了,说

console.log(o2.prototype.prototype.isPrototypeOf);
^
TypeError: Cannot read property 'prototype' of undefined

这更奇怪:如果o2的原型(prototype)是“Person”,那么我期望

Person.prototype == o2.prototype.prototype

但是为什么还是失败呢?

最佳答案

您应该使用:

var Person=function(){
this.name='abc';
this.age=30;
};
var o1=new Person();
var o2=new Person();
o1.prototype = Person.prototype;
o2.prototype = Person.prototype;
console.log(o2.prototype.isPrototypeOf(o1));

关于javascript - 为什么我不能在 JavaScript "isPrototypeOf"中使用对象的原型(prototype)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38820409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com