Да, это так.Эта функция была добавлена в ECMAScript 5.
PropertyAssignment:
PropertyName : AssignmentExpression
get PropertyName() { FunctionBody }
set PropertyName( PropertySetParameterList ) { FunctionBody }
Вот несколько вещей, которые следует помнить при использовании этого синтаксиса.
- Если у литерала объекта есть свойство value, оно не может иметь геттераили сеттер и наоборот.
- В вашем литерале объекта не может быть более одного геттера или сеттера с одинаковым именем.
Лучший способ использовать эту функцию - через Object.defineProperty
function.
function Person(fName, lName) {
var _name = fName + " " + lName;
Object.defineProperty(this, "name", {
configurable: false, // Immutable properties!
get: function() { return _name; }
});
}
Это позволяет вам получать красивые чистые объекты с инкапсуляцией.
var matt = new Person("Matt", "Richards");
console.log(matt.name); // Prints "Matt Richards"