2011-02-13 84 views

回答

5

它定義了一個getter

綁定對象屬性到一個當屬性被查找將要調用的函數。

閱讀關於Getters and Setters

當您訪問屬性時調用此函數:

var sth = obj.currentState 

請注意,這是不一個函數調用(沒有()),但一個正常的屬性訪問。

相應setter應該是這樣的:

set currentState(value) { 
    // do something with value 
    // value would be 42 in the next example 
} 

,當你把值分配給屬性將被調用,例如

obj.currentState = 42; 

getset關鍵字對象文字符號內使用特殊的運算符。你也可以使用__defineGetter____defineSetter__

Parser.prototype.__defineGetter__('currentStatus', function() { 
    return this.state[this.state.length - 1]; 
}); 

我不知道在哪個版本的它雖然推出了,它可能不是所有瀏覽器都支持(尤其是IE))。

+3

它在ECMAScript 5中引入,IE9是第一個帶有功能ES5引擎的瀏覽器。 – user123444555621 2011-02-13 11:34:14