http://ejohn.org/blog/building-a-javascript-library/
在上面的链接中,John Resig建议在调用者最初忘记的情况下调用并返回构造函数中的new foo
。
这对我有意义,但后来我得到了一个严格的错误,因为我的构造函数并不“总是”返回一个值。在javascript中对构造函数有所了解之后,我停止返回this
,因为new
会自动执行此操作。
我的问题是,我应该......
答案 0 :(得分:4)
返回this
毫无意义,因为如果调用者忘记添加new
,则this
将成为文档,而不是foo
的实例。我通常做的是使用if(! (this instanceof foo)) return new foo();
或类似的东西启动一个构造函数
编辑:经过仔细阅读后,如果你想避免严格的错误并且你已经这样做了,是的,return this
最后通常是个好主意