search

Home  >  Q&A  >  body text

javascript - nodejs模块接口设计问题?

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

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

PHP中文网PHP中文网2788 days ago664

reply all(1)I'll reply

  • PHP中文网

    PHP中文网2017-04-10 15:34:53

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

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

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

    reply
    0
  • Cancelreply