我正在使用arbor js。但是,当我运行ie8,9和10浏览器时,它会显示错误对象并不支持属性或方法__defineGetter__
。我该如何解决这个问题。
答案 0 :(得分:0)
__defineGetter__
是一种古老的,专有的定义属性的方式" getter"功能。如果您使用的库依赖于它,则无法在不支持它的JavaScript引擎上使用它。
为属性定义getter函数的现代标准方法并不使用该语法。也许您可以使用更新版本的库。
目前有两种/三种标准方式,另一种方式是:
在object initializer上使用get
和set
函数:
var obj = {
get foo() {
return /*...foo value...*/;
},
set foo(v) {
// Set foo value
}
};
...或使用Object.defineProperty
:
var obj = {};
Object.defineProperty(obj, "foo", {
get: function() {
return /*...foo value...*/;
},
set: function(v) {
// Set foo value
}
};
...或使用Object.defineProperties
(或Object.create
的第二个参数,它接受同样的事情):
var obj = {};
Object.defineProperties(obj, {
foo: {
get: function() {
return /*...foo value...*/;
},
set: function(v) {
// Set foo value
}
}
});
对于通过构造函数创建的对象,ES6还将添加class
:
class ThingWithFoo {
get foo() {
return /*...foo value...*/;
}
set foo(v) {
// Set foo value
}
}