2011-05-03 49 views
3

下面是Chrome開發者的工具的一個片段:在對象文字中,「get」是什麼意思?

WebInspector.DOMStorage.prototype = { 
    get id() 
    { 
     return this._id; 
    }, 

    get domain() 
    { 
     return this._domain; 
    }, 

    get isLocalStorage() 
    { 
     return this._isLocalStorage; 
    }, 

    getEntries: function(callback) 
    { 
     DOMStorageAgent.getDOMStorageEntries(this._id, callback); 
    }, 

    setItem: function(key, value, callback) 
    { 
     DOMStorageAgent.setDOMStorageItem(this._id, key, value, callback); 
    }, 

    removeItem: function(key, callback) 
    { 
     DOMStorageAgent.removeDOMStorageItem(this._id, key, callback); 
    } 
} 

WebInspector.DOMStorage是一個函數,並在上面的代碼,是它的原型。對我來說最奇怪的是下面的方法:get id()get東西 - 我檢查了進入對象原型只有removeItem,getEntriessetItem被識別。其他人呢?

回答

3

那些是獲得者。如果你有DOMStorage一個實例,你可以這樣做:

var domain = inst.domain; 

,但你不能分配給它(或者你可以,但價值不得到改變):

inst.domain = 4; #doesnt change inst.domain 

爲見this link更多關於它的信息。只有一些瀏覽器支持它。

+1

請注意訪問器已經在ECMAScript 5中進行了標準化,所以大多數現代瀏覽器都支持它們。也就是說,[FF2 +,Safari3 +,IE9,Chrome,Opera9.5 +](http://robertnyman.com/javascript/javascript-getters-setters.html#regular-getters-and-setters) – user123444555621 2011-05-03 15:49:33