【问题标题】:what is variable "external" meant for in javascriptjavascript中的变量“外部”是什么意思
【发布时间】:2013-07-21 01:09:08
【问题描述】:

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

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

谢谢

【问题讨论】:

  • “解决这个问题”是什么意思?只需删除日志记录语句即可删除错误。
  • @FabrizioCalderan 但 IE10 给出错误提示
  • @DavidPärsson 我知道,但我一般如何修复“对象不支持此属性或方法”
  • 没有修复,因为您正在执行的操作不受支持。唯一的解决办法是不要这样做。

标签: javascript


【解决方案1】:

“但是我该如何解决“对象不支持这个属性或方法”的问题?

给定一个对象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 技术适用于全局变量,包括浏览器提供的变量和用户定义的变量。它不适用于局部变量。

【讨论】:

  • hasOwnProperty 也可以用于函数
  • 是的。一般而言,JS 对象的“方法”实际上只是碰巧引用函数的属性。
猜你喜欢
  • 2013-03-28
  • 1970-01-01
  • 2014-09-15
  • 2017-06-11
  • 2011-08-30
  • 1970-01-01
  • 2013-11-02
  • 2022-01-25
  • 1970-01-01
相关资源
最近更新 更多