Istnieje stara sztuczka (that I learned on SO) polegająca na wychwytywaniu wywołania konstruktora jako funkcji, tj. Zapominaniu słowa kluczowego new
. Następujące, lub coś w tym stylu, są umieszczane w każdym konstruktorze u góry.Metody alternatywne dla tej instancji arguments.callee
if (!(this instanceof arguments.callee)) {
throw Error("Constructor called as a function");
}
Jakie są alternatywy, kiedy trzeba "use strict";
?
Czy można zachować charakter ogólny? Czy musimy użyć nazwy konstruktora zamiast nazwy arguments.callee
?