С помощью этого подхода вы можете обезопасить свои конструкторы от вызова без new.
function Color (r, g, b) {
// Проверяем this на то, является ли оно объектом Color
if (! (this instanceof Color) ) {
return new Color(r, g, b);
// Или возвращаем ошибку
// throw new Error('Color вызван без new');
}
this.r = r;
this.g = g;
this.b = b;
}
// Глобальная переменная
r = "Rodent Of Unusual Size";
// Небезопасный вызов
// this - глобальный объект
var blue = Color(0, 0, 255);
// Выведет: "Rodent Of Unusual Size"
console.log(r);
// Выведет: Color {r: 0, g: 0, b: 255}
console.log(blue);
Комментариев нет:
Отправить комментарий