Цитирую this guy мы можем использовать конструктор питания, который имеет видJS Мощность Конструктор и InstanceOf без нового
function constructor() {
var that = {};
that.data = true;
that.method = function() {};
return that;
}
Для создания объектов, которые будут правильно вести себя с или без new
ключевого слова.
Вопрос: как мы подключаем оператора intanceof к работе с конструкторами власти? Я думаю, что это имеет какое-то отношение к атрибуту object.prototype.constructor, но я не уверен, как его редактировать в области функции конструктора.
constructor() instanceof constructor // false but I want it to be true
new constructor() instanceof constructor // true
Существует более простой подход: просто добавьте «использовать строго» в начало файла или в начало вашей функции конструктора. Это гарантирует, что 'this' не определено, если программист забыл использовать ключевое слово' new'. –
См. Также: http://stackoverflow.com/questions/30419297/returning-this-from-a-constructor-function-in-js –
@MattBrowne Я пытаюсь избежать «новой» своей школы мысли в js не использовать его. – t3dodson