Javascript 检查使用object.create创建的对象是否为原始对象的实例
如果我使用Javascript 检查使用object.create创建的对象是否为原始对象的实例,javascript,object,Javascript,Object,如果我使用对象创建对象,如何检查新的对象是否是旧的对象的实例 这里有一个例子来解释我的意思 var MyClass={ 属性:null }; MyClass[Symbol.toStringTag]=“我的类”; 函数newMyClass(属性){ var instance=Object.create(MyClass); instance.property=属性; 返回实例; } log(MyClass的newMyClass()实例) 如何检查新对象是否是旧对象的实例 这确实是一个错误的问题,因
对象创建对象
,如何检查新的对象
是否是旧的对象的实例
这里有一个例子来解释我的意思
var MyClass={
属性:null
};
MyClass[Symbol.toStringTag]=“我的类”;
函数newMyClass(属性){
var instance=Object.create(MyClass);
instance.property=属性;
返回实例;
}
log(MyClass的newMyClass()实例)代码>
如何检查新对象是否是旧对象的实例
这确实是一个错误的问题,因为“这是什么的实例”的答案总是一个函数(构造函数)或null
。您提供给Object.create
的参数不是构造函数,而是原型对象(也称为proto)。因此,如果您想知道prototype对象,只需检查对象。getPrototypeOf
:
var MyClass={
属性:null
};
MyClass[Symbol.toStringTag]=“我的类”;
函数newMyClass(属性){
var instance=Object.create(MyClass);
instance.property=属性;
返回实例;
}
console.log(Object.getPrototypeOf(newMyClass())==MyClass)代码>
如何检查新对象是否是旧对象的实例
这确实是一个错误的问题,因为“这是什么的实例”的答案总是一个函数(构造函数)或null
。您提供给Object.create
的参数不是构造函数,而是原型对象(也称为proto)。因此,如果您想知道prototype对象,只需检查对象。getPrototypeOf
:
var MyClass={
属性:null
};
MyClass[Symbol.toStringTag]=“我的类”;
函数newMyClass(属性){
var instance=Object.create(MyClass);
instance.property=属性;
返回实例;
}
console.log(Object.getPrototypeOf(newMyClass())==MyClass)代码>实例
只能与具有.prototype
对象的构造函数一起使用。对于原始原型继承,请使用:
您还可以使用对象.getPrototypeOf
手动遍历链,或者使用它检查对象是否是直系后代。实例
只能与具有.prototype
对象的构造函数一起使用。对于原始原型继承,请使用:
您还可以使用Object.getPrototypeOf
手动遍历链,或者使用它检查对象是否是直系后代。第一个MyClass
不是类(即构造函数函数或类
)。它只是一个普通对象。第一个MyClass
不是类(即构造函数函数或class
)。它只是一个普通的对象。我想没有关键字吧?像class isPrototypeOf instance
No一样,没有。这是一个对象。原型方法。语法上有吸引力的关键字仅适用于类模式。Ok。我只是想知道这两种方法是不是都像typeof
那样实现的,我想没有关键字吧?像class isPrototypeOf instance
No一样,没有。这是一个对象。原型方法。语法上有吸引力的关键字仅适用于类模式。Ok。我只是想知道这两者是否都像typeof
console.log(MyClass.isPrototypeOf(newMyClass()));