if instanceof具有特殊字符的对象

时间:2018-04-09 11:50:40

标签: javascript node.js special-characters instanceof

我试图找出如何检查某个对象是否是objectwith.inthename的实例,但.导致的问题是objectwith未定义。

if (myvar instanceof objectwith.inthename) { ... }

如果我尝试将'objectwith.inthename'用作字符串,那么我会收到一个错误,即字符串不是对象。

该对象未在我的脚本中定义,但是使用必需的包

从响应中返回

2 个答案:

答案 0 :(得分:1)

如果这是一个合法的对象,那么它必须是某个东西的成员。如果您没有变量名称友好变量,则可以使用方括号[]注释。

方括号将取决于定义对象的位置。由于您没有显示this,因此它可能位于window(在浏览器中)或global(在Node.js中)。

myvar instanceof window['objectwith.inthename']
myvar instanceof global['objectwith.inthename']

如果它实际上在this上,那么只需:

myvar instanceof this['objectwith.inthename'];

答案 1 :(得分:0)

您可以使用Symbol.hasInstanceinstanceof

function inthename() {};

var objectwith = {};

objectwith.inthename = inthename;

var myvar = new objectwith.inthename();

console.log(myvar instanceof objectwith.inthename);

console.log(objectwith.inthename[Symbol.hasInstance](myvar));