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 会导致出乎意料的后果。然而这也就是一个习惯问题罢了。