我想了一下好象直接当事件是函数,要触发就直接调用就行咯,俺果然是白痴,sinsns骂的对。不过还是等等再结贴吧,希望有更好的解释。

解决方案 »

  1.   

    我理解的事件是当属性发生改变的时候自动触发的。
    但是要是设置一个记时器来定时所有对象的检查状态又太不经济了。
    那就只能自己来保证所有的状态改变都通过set方法来完成,而后在set方法中触发事件函数了。
      

  2.   

    把属性private起来就好了。试试:<SCRIPT LANGUAGE="JavaScript">
    <!--
    function myObj(){
    var emu="hello";
    function set(s){emuChanged(emu,s);emu=s;};
    function get(){return emu};
    this.setEmu = set;
    this.getEmu = get;
    }
    function emuChanged(s1,s2){
    alert("Property emu was changed from \""+s1+"\" to \""+s2+"\" .")
    }
    var o = new myObj();
    o.setEmu("test");
    alert(o.getEmu())
    //-->
    </SCRIPT>
      

  3.   

    或者这样写:<SCRIPT LANGUAGE="JavaScript">
    <!--
    function myObj(){
    var emu="hello";
    this.setEmu = function (s){emuChanged(emu,s);emu=s;};
    this.getEmu = function (){return emu};
    }
    function emuChanged(s1,s2){
    alert("Property emu was changed from \""+s1+"\" to \""+s2+"\" .")
    }
    var o = new myObj();
    var p = new myObj();
    o.setEmu("test");
    p.setEmu("world");
    alert(o.getEmu())
    alert(p.getEmu())
    //-->
    </SCRIPT>