如何制作动态getter / setter

时间:2012-06-23 15:16:06

标签: javascript

我已经知道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"

我该怎么做?有可能吗?

1 个答案:

答案 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"