在尝试移植并且通常使用一些非浏览器代码时,我遇到了看起来像普通对象属性的getter和setter。像这样:
js> var o = {
a: 4,
get b(){
return this.a + 3;
},
set b(val){
this.a = val - 3;
}
};
js> o.a
4
js> o.b
7
js> o.b=10
10
js> o.a
7
这似乎适用于Rhino和Spidermonkey的最新版本,但是在JScript(Windows脚本宿主)中是否可以实现或模拟行为(定义语法对我来说不那么重要)?
答案 0 :(得分:1)
答案是No
。 Setter和getter只是功能类似的属性,但没有办法正确模拟语法。我有一个在使用行为的< = IE7中使用HTML元素模拟getter和setter的中途概念,但即使这样也比我想象的要困难得多。即使IE8只支持DOM对象上的getter / setter而不支持JScript对象,所以我认为这是JScript团队需要包含的东西,如果他们这样做的话。
如果只有人想过在原始的JScript / ECMAScript实现中包含setter和getter。
答案 1 :(得分:0)
根据this article(由jQuery的创建者John Resig提供),JScript.NET 8支持Javascript getter和setter。
答案 2 :(得分:0)
这是一个完整的浏览器列表及其对getter和setter的支持。 http://robertnyman.com/javascript/#javascript-getters-setters-object-defineproperty-compatibility