84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
请点击这里 这个模块只暴露了一个接口create(工厂函数)。当时设计接口的时候没有考虑太多,直接参照了一个类似的模块。 现在回过头来思考一下,返回构造函数IDCardOCR似乎也可以。
create
IDCardOCR
不过好像还是有区别:构造函数可以访问到原型链上的方法,而工厂函数不行。 那么,如果返回构造函数会不会有什么不好的后果?又有什么其他区别? 谢谢。
认证0级讲师
你确定你说的“区别”是对的?
你的 create 访问就是调用构造器 new 了一个实例,因此其返回结果当然也可以访问到原型链上的方法,何来不行?
返回构造函数并不会有什么“不好”的后果,后果好坏取决于使用的人,不返回构造函数的一个小优点是避免使用者忘记 new,因为 javascript 没有静态检查,有时候忘记了 new 会导致出乎意料的后果。然而这也就是一个习惯问题罢了。
你确定你说的“区别”是对的?
你的
create
访问就是调用构造器 new 了一个实例,因此其返回结果当然也可以访问到原型链上的方法,何来不行?返回构造函数并不会有什么“不好”的后果,后果好坏取决于使用的人,不返回构造函数的一个小优点是避免使用者忘记 new,因为 javascript 没有静态检查,有时候忘记了 new 会导致出乎意料的后果。然而这也就是一个习惯问题罢了。