我正在阅读John Resig的优秀书籍" Javascript Ninja的秘密"(http://www.manning.com/resig/)
在其中,他有一个非常好的方法来捕获被称为函数的构造函数 -
function User(first, last)
if((!this instanceof arguments.callee)) {
return new User(first, last);
}
}
现在我知道可以手动为每个函数添加类的名称,但是如果我想要聪明并且扩展我的所有构造函数来自" BaseConstructor"通过设置一个布尔值,如何在没有arguments.callee的情况下实现这个目标?
像(未经测试的)
function BaseConstructor() {}
BaseConstructor.prototype.calledCorrectly = (function () {
return !this.instanceof arguments.callee;
})();