有一个老技巧(我在stack overflow上学来的)可以用来捕获将构造函数作为函数调用的情况,也就是忘记使用new
关键字。以下代码或类似的代码应该放在每个构造函数的顶部。
if (!(this instanceof arguments.callee)) {
throw Error("Constructor called as a function");
}
当你需要使用"use strict";
时,有哪些替代方案?
它的普适性能否得以保留?或者我们必须使用构造函数的名称来代替arguments.callee
?