javascript - 从javascript中的构造函数显式返回值

标签 javascript constructor return-value

http://ejohn.org/blog/building-a-javascript-library/

在上面的链接中,如果调用者最初忘记了,John Resig 建议在构造函数中调用并返回 new foo

这对我来说有些道理,但后来我得到了一个严格的错误,因为我的构造函数并不“总是”返回一个值。在对 javascript 中的构造函数有了一点了解后,我不再返回 this,因为 new 会自动返回。

我的问题是,我应该...

  1. 不使用描述的防御技术?
  2. 在我的构造函数结束时返回它?
  3. 我不知道的神秘选项?

最佳答案

返回 this 是没有意义的,因为如果调用者忘记添加 new 那么 this 将是文档,而不是 的实例富。我通常做的是用 if(! (this instanceof foo)) return new foo(); 或类似的东西来启动构造函数

编辑:仔细阅读后,如果您想避免严格错误并且您已经这样做了,是的,在最后返回 return this 通常是一个很好的选择想法

关于javascript - 从javascript中的构造函数显式返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4812261/

相关文章:

javascript - 如何将此 jquery 代码转换为 "raw"javascript

Java:从方法返回的最佳实践(通过 if 语句)

javascript - 如何使用Javascript缩小图像

javascript - 数据表打印复杂表头打印预览

使用未定义作为 bool 评估的Javascript最佳实践?

java - 在构造函数中自动初始化 int messageID

javascript - 在构造函数中访问 Prop 的正确方法是什么?

带有 "this"关键字的 Java 复制构造函数

c - 在 C 中返回局部静态

c# - 通过catch block 从函数返回,finally block 会发生什么?