我有一个带有变量'object'的javascript函数,可以接收两种类型的对象,比如x和y对象
"name: user"
有类似的东西吗? 它应警告x或y
答案 0 :(得分:2)
有类似的东西吗?它应警告x或y
是:
alert(object instanceof TheConstructorYouWantToCheckAgainst);
如果我正确地读了你的问题,你的构造函数是x
和y
(约定是使用大写的第一个字母)。例如:
function x() {
}
function y() {
}
var o = new x();
console.log(o instanceof x); // true
console.log(o instanceof y); // false
如果您希望"x"
从object
通过new x
创建name
,则无法在ES5及之前可靠。在ES2015(又名" ES6")及以上版本中,函数具有x
属性,该属性以多种方式设置(即使函数是使用"匿名&#34创建的) ;函数表达式)。因此,如果object.constructor.name
有一个名称(它仍然不可能),并且如果已正确设置了继承链,"x"
将为您提供constructor
。但我不会依赖它,因为人们在继续做的继承链时会弄乱Comparator
。
答案 1 :(得分:0)
您可以根据需要使用不同的解决方案
在下面的代码中,我使用了 X 对象。将 X 替换为 Y 以替换其他情况
object instanceof X; // == true
object.constructor.name; // == "X"
X.prototype.isPrototypeOf(object); // == true