0

如果我有一个对象:

 function myClass(id) {
   this.em = document.getElementById(id);
   this.html = function(data) {
     this.em.html = data;
   }
 }

现在我能 :

  var em = new MyClass("id");
  em.html("NEW HTML HERE");

我需要 :

em.html = "NEW HTML HERE";

可能吗?

4

1 回答 1

3

在 HTML5 中,您可以在属性上定义一个set方法(请参阅 参考资料)htmldefineProperty()

function myClass(id) {
    this.em = document.getElementById(id);    

    Object.defineProperty(this, 'html', {
        set: function(val) {
            this.em.html = val;
        }
    });
}

...但这仅适用于最现代的浏览器;IE8、Chrome 5、Firefox 4。

在此处查看上述工作的演示;http://jsfiddle.net/sskKc/

于 2012-07-18T09:12:45.437 回答