Он определяет getter :
Связывает свойство объекта с функцией, которая будет вызываться при поиске этого свойства.
Подробнее о Получателя и установщика .
Эта функция вызывается при доступе к свойству:
var sth = obj.currentState
Обратите внимание, что это не вызов функции (нет ()
), но обычный доступ к свойству.
Соответствующий setter будет выглядеть так:
set currentState(value) {
// do something with value
// value would be 42 in the next example
}
и вызывается при назначении значения этому свойству, например,
obj.currentState = 42;
Ключевые слова get
и set
- специальные операторы, которые будут использоваться внутри литеральной нотации объекта,Вы также можете использовать __defineGetter__
и __defineSetter__
:
Parser.prototype.__defineGetter__('currentStatus', function() {
return this.state[this.state.length - 1];
});
Я не уверен, в какой версии он был представлен, хотя он может поддерживаться не всеми браузерами (особенно IE;)).