我使用的是库手柄表,我希望在IE8-IE9中运行我的应用程序(尽管它不是IE < 10兼容的.)。当我的代码使用minify版本时,我会在JS控制台中得到一个错误:"';‘预期的“。
这是密码。
, {
get DEFAULT_WIDTH() {
return 50;
}
}我只是不懂这个语法。"get DEFAULT_WIDTH()“是做什么的?
发布于 2015-07-29 07:46:02
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)defineProperty
发布于 2015-07-29 07:39:55
MDN有到达文档,包括支持浏览器的列表。get所做的是在查找属性时调用函数。有关更一般的解释,请参见定义getter和setter。
https://stackoverflow.com/questions/31694049
复制相似问题