我正在使用图书馆掌上电脑,我想让我的应用程序在IE8-IE9中运行(即使它不是IE< 10兼容......)。当我的代码使用minify版本时,我在JS控制台中出现错误:"';'预期"
这是代码。
, {
get DEFAULT_WIDTH() {
return 50;
}
}
我只是不知道这种语法。什么"得到DEFAULT_WIDTH()"做什么?
答案 0 :(得分:1)
MDN有get的文档,包括支持的浏览器列表。得到的是在查找属性时调用函数。有关更一般性的解释,请参阅Defining getters and setters。
答案 1 :(得分:0)
get
语法将对象属性绑定到将在查找该属性时调用的函数。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get
可以在这里找到更普遍和令人筋疲力尽的解释:
基本上,它允许您定义代码对某个对象属性读取时会发生什么。以类似的方式,您还可以定义当代码写入到具有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)