我有这个代码:
if(window.NS1.foob)
我想检查一下 fob 是否存在。
但是,我收到此错误
NS1 id undefined.
问题是我需要测试是否存在 foob,而不是 NS1。
我有这个代码:
if(window.NS1.foob)
我想检查一下 fob 是否存在。
但是,我收到此错误
NS1 id undefined.
问题是我需要测试是否存在 foob,而不是 NS1。
一种方法是:
if(window.NS1 && window.NS1.foob)
不幸的是,您必须先检查 NS1。Window 是全局对象,您不需要指定它,因为它是隐式的。
if (window.NS1 && window.NS1.foob)
在检查 foob 之前。
这应该可以解决您的问题。
There can be many ways, following are two:
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;
}
}
Second one should be preferred, if NS1 not being present is an exceptional condition (i.e., won't occur frequently) and also if you want to handle it in a different way (compared to when foob is not present).
这对我有用。
var NS1 = window.NS1 = function(){};
NS1.foob = "bar";
NS1.hasOwnProperty('foob') ? alert('Yep') : alert('Nope');
编辑:不知道为什么我被否决了,但也许我误解了这个问题。(虽然我显然有点过于复杂了)