问Object.defineProperty,如下面所示:
function testComponent(){
var testProperty;
Object.defineProperty(this, "testProperty",
{
get : function()
{
return testProperty;
},
set : function(val)
{
testProperty = val;
}
});
}
哪里会使用像这样:
testObject = new testComponent();
testObject.testProperty = "testValue";
根据我到目前为止看到的,它看起来像没有跨浏览器解决方案,因为我已经尝试使用ES5,垫片没有运气,但我想确认。 我还发现一个参考这篇文章和我的测试仍然无法在IE 7和8,任何人都可以揭示出这个任意光?
我记得通过一个相关的问题看,几个月前在S / O的地方,我想我看到有人写在回答中了一个解决方案。 吸气用任何一般的解决方法/ setter方法也将不胜感激。 我们的想法是,我需要的对象上的吸气剂设置器的一些等效而不通过参数改变通过的方法。 我不需要IE6,但我想,以支持在浏览器IE7的FF + 3.6+等范围
下面QUnit测试:(jsFiddles)
(这些通过在所有浏览器我的机器上除IE 7&8
直接使用defineProperty,无垫片 :
http://jsfiddle.net/uSYFE/
使用ES5垫片小提琴,我假设我需要做的是包括它? :
http://jsfiddle.net/hyperthalamus/ntwDy/
使用IE小提琴推荐的解决方案 :
http://jsfiddle.net/hyperthalamus/xfvz3/