我已经知道getter / setter是如何工作的。例如,使inneHTML在NodeLists上工作
Object.defineProperty(NodeList.prototype,'innerHTML',{set:function(a,b){for(b in this)if(this[b])this[b]['innerHTML']=a}})
我想创建一个基于正在访问的属性输出内容的对象。
例如:
dynamicGetter = function(property){return querySelectorAll(property)}
myObject["div>ul>li>a"][0].innerHTML = "foo"
myObject.div[0].style.background="red"
我该怎么做?有可能吗?
答案 0 :(得分:0)
以下是如何做到这一点: 目前,这仅适用于firefox :(
myObject = Proxy.create({
get: function(x,property) {
return document.querySelectorAll(property);
}
});
myObject["div>ul>li>a"][0].innerHTML = "foo"
myObject.div[0].style.background="red"