也许我对原型继承的理解是关闭的。有趣的是我继承了我的对象,但仍然返回false。对不起,对于那些对我不利的人来说,这是一个愚蠢的问题。
是的,我故意拼写我的变量和/或对象用于演示目的,是的,我故意试图使用.create作为反对new()。
var VehiclePrototype = {
type: "car"
};
var carPrototype = Object.create(VehiclePrototype);
carPrototype.wheels = null;
carPrototype.make = null;
carPrototype.model = null;
var jamesCar = Object.create(carPrototype);
var x = jamesCar.type
alert(x);
alert(Object.isPrototypeOf(jamesCar, VehiclePrototype)); //false
答案 0 :(得分:2)
您正在调用该功能。尝试:
alert(VehiclePrototype.isPrototypeOf(jamesCar));
.isPrototypeOf()
函数位于Object 原型上 - 这意味着它可以作为来自任何对象的方法调用。您将其称为要测试的对象上的方法,以查看它是否是某个其他对象的原型。 (另一个对象是参数。)
请注意,您的代码不是错误,因为它实际上不是错误,至少在JavaScript术语中。你的调用是询问Object构造函数是否是“jamesCar”对象的原型,它显然不是。