检查JS对象是否存在

时间:2012-05-28 16:19:46

标签: javascript

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

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

5 个答案:

答案 0 :(得分:6)

如果对象在全局范围内;

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

答案 1 :(得分:1)

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

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

但是,我要说我会发现非常很难证明在项目中编写此代码是正确的。您应该知道自己拥有哪些变量,除非您希望人们为您的代码或其他东西编写插件。

答案 2 :(得分:1)

if( window[input])...

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

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

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

适合我。

相关问题