Что означает «получить» в литерале объекта? - PullRequest
3 голосов
/ 03 мая 2011

Ниже приведен фрагмент из инструмента разработчика Chrome:

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, getEntries и setItem. А как насчет других?

1 Ответ

3 голосов
/ 03 мая 2011

Это добытчики.Если у вас есть экземпляр DOMStorage, вы можете сделать:

var domain = inst.domain;

, но не можете присвоить ему (или можете, но значение не изменяется):

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

См. эту ссылку для получения дополнительной информации об этом.Только некоторые браузеры поддерживают это.

...