В Javascript кажется, что использование атрибутов свойств не так уж и много (в отличие от других языков OO, таких как Java, например).
Если у меня есть объект Person
с именем, определенным как
function Person(name) {
this.name = name;
}
Имя человека не изменится, но я хочу иметь доступ к нему, когда это необходимо, поэтому я мог бы сделать что-то вроде:
function Person(name) {
var name = name;
this.getName = function() {
return name;
}
}
Даже на динамическом языке я считаю, что принципы использования геттеров и сеттеров применяются так же, как и к статически типизированным OO-языкам (например, инкапсуляция, добавление проверки, ограничение доступа и т.д.)
Этот вопрос может быть закрыт как субъективный, но мне любопытно, почему это поведение чаще не проявляется (например, разработчики Java сойдут с ума, если все станет общедоступным).
Есть ли "стандартный" способ сделать это в javascript? Я видел Object.defineProperty
, но не все браузеры поддерживают это.