http://ejohn.org/blog/building-a-javascript-library/
在上面的链接中,如果调用者最初忘记了,John Resig 建议在构造函数中调用并返回 new foo
。
这对我来说有些道理,但后来我得到了一个严格的错误,因为我的构造函数并不“总是”返回一个值。在对 javascript 中的构造函数有了一点了解后,我不再返回 this
,因为 new
会自动返回。
我的问题是,我应该...
- 不使用描述的防御技术?
- 在我的构造函数结束时返回它?
- 我不知道的神秘选项?
最佳答案
返回 this
是没有意义的,因为如果调用者忘记添加 new
那么 this
将是文档,而不是 的实例富
。我通常做的是用 if(! (this instanceof foo)) return new foo();
或类似的东西来启动构造函数
编辑:仔细阅读后,如果您想避免严格错误并且您已经这样做了,是的,在最后返回 return this
通常是一个很好的选择想法
关于javascript - 从javascript中的构造函数显式返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4812261/