我试图找出如何检查某个对象是否是objectwith.inthename
的实例,但.
导致的问题是objectwith
未定义。
if (myvar instanceof objectwith.inthename) { ... }
如果我尝试将'objectwith.inthename'
用作字符串,那么我会收到一个错误,即字符串不是对象。
该对象未在我的脚本中定义,但是使用必需的包
从响应中返回答案 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.hasInstance
或instanceof
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));