我有这段代码:
if(window.NS1.foob)
我想查看是否存在foob。
但是,我收到此错误
NS1 id undefined.
问题是我需要测试foob的存在,而不是NS1。
答案 0 :(得分:8)
一种方法是:
if(window.NS1 && window.NS1.foob)
答案 1 :(得分:4)
不幸的是,您必须先检查NS1。 Window是全局对象,您不需要指定它,因为它是隐式的。
if (window.NS1 && window.NS1.foob)
在检查foob之前。
这可以解决您的问题。
答案 2 :(得分:3)
可以有很多种方式,以下是两种方式:
if(window.NS1 && window.NS1.foob){
//your code
}
try{
if(window.NS1.foob) {
//your code
}
} catch (err) {
if(err instanceof TypeError) {
//your code
} else {
throw err;
}
}
第二个应该是首选,如果NS1不存在是一个例外情况(即,不会经常发生),并且如果你想以不同的方式处理它(与foob不存在时相比)。< / p>
答案 3 :(得分:-1)
这适合我。
var NS1 = window.NS1 = function(){};
NS1.foob = "bar";
NS1.hasOwnProperty('foob') ? alert('Yep') : alert('Nope');
编辑:不知道为什么我被投票,但也许我误解了这个问题。 (虽然我明显过分复杂了一点)