nodejs模块接口设计问题?

请点击这里
这个模块只暴露了一个接口create(工厂函数)。当时设计接口的时候没有考虑太多,直接参照了一个类似的模块。
现在回过头来思考一下,返回构造函数IDCardOCR似乎也可以。

不过好像还是有区别:构造函数可以访问到原型链上的方法,而工厂函数不行。
那么,如果返回构造函数会不会有什么不好的后果?又有什么其他区别?
谢谢。

阅读 3.2k
1 个回答

你确定你说的“区别”是对的?

你的 create 访问就是调用构造器 new 了一个实例,因此其返回结果当然也可以访问到原型链上的方法,何来不行?

返回构造函数并不会有什么“不好”的后果,后果好坏取决于使用的人,不返回构造函数的一个小优点是避免使用者忘记 new,因为 javascript 没有静态检查,有时候忘记了 new 会导致出乎意料的后果。然而这也就是一个习惯问题罢了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题