Сообщение от Antonius
|
Кстати, где можно почитать насчет seal, freeze, preventExtensions и т. д. Использовать здесь точно не буду, просто чтобы быть в курсе...
|
http://learn.javascript.ru/descriptors-getters-setters
Сообщение от Antonius
|
Если бы объекты создавались редко, а затем интенсивно модифицировались — можно было бы и так, но пока мне кажется, что именно для этой задачи — не очень красивый вариант.
|
можешь использовать "Шаблоны принудительного использования new":
1.
'use strict';
function Waffle() {
alert(this === undefined);
this.tastes = 'yummy';
}
new Waffle();
Waffle();
В строгом режиме ES5 ссылка this больше не указывает на глобальный объ-
ект.
2.Возвращать из конструктора "другой" объект:
function Waffle() {
var obj = Object.create(Waffle.prototype);
obj.tastes = 'yummy';
alert(obj instanceof Waffle);
return obj;
}
new Waffle();
Waffle();
3.Использовать конструктор вызывающий сам себя:
function Waffle() {
if (!(this instanceof Waffle)) {
return new Waffle();
}
this.tastes = 'yummy';
alert(this instanceof Waffle);
}
new Waffle();
Waffle();
*писал на скорую руку, мог ошибиться...