JavaScript,未知语法

时间:2015-07-29 07:34:59

标签: javascript function

我正在使用图书馆掌上电脑,我想让我的应用程序在IE8-IE9中运行(即使它不是IE< 10兼容......)。当我的代码使用minify版本时,我在JS控制台中出现错误:"';'预期"

这是代码。

, {
    get DEFAULT_WIDTH() {
        return 50;
    }
}

我只是不知道这种语法。什么"得到DEFAULT_WIDTH()"做什么?

2 个答案:

答案 0 :(得分:1)

MDN有get的文档,包括支持的浏览器列表。得到的是在查找属性时调用函数。有关更一般性的解释,请参阅Defining getters and setters

答案 1 :(得分:0)

  

get语法将对象属性绑定到将在查找该属性时调用的函数。

     

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get

可以在这里找到更普遍和令人筋疲力尽的解释:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects#Defining_getters_and_setters

基本上,它允许您定义代码对某个对象属性读取时会发生什么。以类似的方式,您还可以定义当代码写入到具有set定义的属性时应该发生什么。在这两种情况下,都会覆盖该对象属性的标准行为。

这是ECMAScript 5.1的所有部分,因此在IE<中不可用。 9。

您的示例代码有什么作用?

在您的示例代码中,您可以看到每当读取属性DEFAULT_WIDTH时,将返回常量值。我想这是为了确保DEFAULT_WIDTH不能被重新定义为其他值(事实上它可以,但读取它仍然会返回50)。

  

使用defineProperty

在现有对象上定义getter      

要在以后随时将getter附加到现有对象,请使用Object.defineProperty()

     

var o = { a:0 }
  Object.defineProperty(o, "b", { get: function () { return this.a + 1; } });
  console.log(o.b) // Runs the getter, which yields a + 1 (which is 1)

     

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Defining_a_getter_on_existing_objects_using_defineProperty