繁体   English   中英

检查JS对象是否存在

[英]check if JS object exists

我需要在运行时发现是否存在具有给定名称的对象,但此名称作为字符串存储在变量中。

例如,在我的Javascript中,我有一个名为test的对象,然后在运行时我在一个框中写下“text”这个词,并将这个字符串存储在一个变量中,让我们将其命名为输入。 如何检查存储在输入变量中的字符串命名的变量是否存在?

如果对象在全局范围内;

var exists = (typeof window["test"] !== "undefined");

如果您在浏览器中(即非Node):

var varName = 'myVar';
if (typeof(window[varName]) == 'undefined') {
  console.log("Variable " + varName + " not defined");
} else {
  console.log("Variable " + varName + " defined");
}

然而,让我说,我会觉得很难证明在一个项目中编写这些代码。 您应该知道您拥有哪些变量,除非您希望人们为您的代码或其他东西编写插件。

if( window[input])...

所有全局变量都是window对象的属性。 []表示法允许您通过表达式获取它们。

如果要查看它是否作为全局变量存在,可以在窗口对象上检查成员变量。 window是全局对象,因此其成员是全局对象。

if (typeof window['my_objname_str'] != 'undefined')
{
    // my_objname_str is defined
}

我正在编写我的代码,但并不总是能知道方法是否存在。 我根据请求加载我的js文件。 此外,我有方法绑定对象“通过”ajax响应,并需要知道,如果他们必须调用默认回调或进一步或不特定的方法是可用的。 所以测试如下:

function doesItExist(oName){ 
   var e = (typeof window[oName] !== "undefined"); 
   return e;
}

适合我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM