Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查使用object.create创建的对象是否为原始对象的实例_Javascript_Object - Fatal编程技术网

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()));