什么是变量“外部”意味着在javascript中

时间:2013-07-22 10:28:04

标签: javascript

我刚刚发现大多数浏览器中都存在一个名为 external 的变量,除了IE。我对此有2个问题

  1. 外在的是什么 - http://jsfiddle.net/EVBjU/
  2. 当我执行console.log(外部)时,IE给出object doesn't support this property or method。如何解决这个问题,考虑到它只是一个变量
  3. 由于

1 个答案:

答案 0 :(得分:2)

  

“但我如何修复”对象不支持此属性或方法“一般”

给定一个对象obj,您可以测试属性/方法prop是否存在:

if ("prop" in obj) {
    // do something with obj.prop
}

...注意到in operator也会检查继承的属性。要仅检查直接属性,请使用:

if (obj.hasOwnProperty("prop")) {
    // do something with obj.prop
}
  

“有没有办法检查变量external是否存在”

对于您提到的external属性,如果它存在,它将是window的属性,因此:

if ("external" in window) {
   // do something
}

这种x in window技术适用于全局变量,包括浏览器和用户定义的变量。它不适用于局部变量。