我正在使用handsontable库,我想让我的应用程序在IE8-IE9中运行(即使它不是IE < 10 compatible...). When my code use the minify version I get an error in the JS console : "';' expected".
这是代码。
{
get DEFAULT_WIDTH() {
return 50;
}
}
我只是不知道这个语法。
get DEFAULT_WIDTH()
有什么作用?
MDN 有 get 的文档,包括支持浏览器的列表。 get 的作用是在查找属性时调用一个函数。请参阅定义 getter 和 setter以获得更一般的解释。
语法将对象属性绑定到查找该属性时将调用的函数。get
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get
更一般和更详尽的解释可以在这里找到:
基本上,它允许您定义当通过代码“读取”某个对象属性时会发生什么。以类似的方式,您还可以使用 set
定义来定义当代码 writes 到该属性时会发生什么。在这两种情况下,您都会覆盖该对象属性的标准行为。
这都是 ECMAScript 5.1 的一部分,因此在 IE 中不可用
你的示例代码有什么作用?< 9.
值。我猜这样做的目的是确保 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