首頁  >  文章  >  web前端  >  在 JavaScript 實作多播事件、屬性設定/讀取器

在 JavaScript 實作多播事件、屬性設定/讀取器

高洛峰
高洛峰原創
2016-11-25 10:58:591091瀏覽

做了一個有趣的實驗,網路上大多都是用 function (類似 person.getName()、person.setName())的方式。當然,這是一個通用的方式。

但是在非IE 的瀏覽器下,你可以嘗試執行以下程式碼:

view sourceprint?function Person() 

        

    var _nameChanged = new Array (); 

  

    this.__defineGetter__(NameChanged,function() 

    { 

    this.__defineSetter__(NameChanged,function(value) 

    { 

       _nameChanged.push( value); 

    }); 

  

    this.__defineGetter__(Name,function() 

    }); 

    this.__defineSetter__(Name,function(value) 

    { 

        if(this.NameChanged != null) 

        { 

          { 

                _nameChanged[f](value);  } 

        _name = value; 

    } ); 

      

    this.__defineGetter__(Age,function() 

    

    this.__defineSetter__(Age,function(value) 

    { 

        _age =

       _age = valueue;

    }); 

Person.prototype = 

    

    }, 

    set Sex(value) 

    { 

    

    } 

}; 

var person = new Person(); 

  

person.NameChanged = function

  

person.NameChanged = function(  

person.NameChanged = function());

person.NameChanged = function( ) 

    alert(Event 2); 

  

person.Name = Treenew. alert(The + person.Name + Age is + person.Age + . The Sex Value is + person.Sex); 

alert(person._sex); //undefined

所以,用javascript實現物件導向中的屬性和事件,也是一件很優雅的事情。不過關於多播事件,不知園友有沒有什麼好點子?

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn