如何在javascript函数中检查收到的参数用户定义对象的实例?

时间:2016-09-12 06:22:34

标签: javascript

我有一个带有变量'object'的javascript函数,可以接收两种类型的对象,比如x和y对象

"name: user"

有类似的东西吗? 它应警告x或y

2 个答案:

答案 0 :(得分:2)

  

有类似的东西吗?它应警告x或y

是:

alert(object instanceof TheConstructorYouWantToCheckAgainst);

如果我正确地读了你的问题,你的构造函数是xy(约定是使用大写的第一个字母)。例如:

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