Javascript 检查JS对象是否存在

Javascript 检查JS对象是否存在,javascript,Javascript,我需要在运行时发现是否存在具有给定名称的对象,但该名称作为字符串存储在变量中 例如,在我的Javascript中,我有一个名为test的对象,然后在运行时,我在一个框中写入单词“text”,并将该字符串存储在一个变量中,我们将其命名为input。如何检查使用输入变量中存储的字符串命名的变量是否存在?如果您在浏览器中(即非节点): 然而,我要说的是,我会发现在项目中编写这段代码是非常困难的。你应该知道你有什么变量,除非你希望人们给你的代码或其他东西写插件 if( window[input])...

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

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

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

然而,我要说的是,我会发现在项目中编写这段代码是非常困难的。你应该知道你有什么变量,除非你希望人们给你的代码或其他东西写插件

if( window[input])...

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

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

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

如果对象在全局范围内


var exists=(窗口类型[“测试”]!=“未定义”)

我正在编写代码,但并非所有人都能知道方法是否存在。我根据请求加载js文件。此外,我还有通过ajax响应“绑定”对象的方法,并且需要知道它们是否必须调用默认回调或werther,或者是否有特定的方法可用。 所以一个测试是这样的:

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

适合我。

窗口类型[“字符串”]==“对象”
我会添加一个
&&window[“字符串”!==null
如果要避免将null类型设为object,则会对定义的变量给出错误的结果,但这些变量具有虚假值。@Amadan因为我们正在测试对象,并且没有对象(即使是空对象)具有虚假值,这是完全可以接受的。哦,错过了关于它必须是对象的部分。没问题,这很公平。严格地说,它应该根据未定义的类型检查其类型,但这是一种情况改变需求的情况。
function doesItExist(oName){ 
   var e = (typeof window[oName] !== "undefined"); 
   return e;
}