刚才跟着《vue.js技术揭秘》读到src/core/instance/index.ts看一个代码片段
教程上说,这是一个用function实现的类,我们只能用new去调用它。原因是他在Vue函数的开始做了一个判断,运用instanceof,如果调用Vue的对象的原型链上没有Vue.prototype对象,那么他就会进入if体中,打印警告,然后向下执行,如果不用new执行Vue,那么this就不会指向Vue实例对象,Vue实例对象也就不会执行_init方法。所以如果要Vue生效,就必须使用new操作符运行Vue函数。
刚开始读代码,我就感觉尤大大js基础很夯实,一个this的运用,差点把我劝退。强。然后,教程还说,不用class去写这个的好处,能够模块化管理功能。确实,如果用class写,所有功能都只能写入这个类里面,不利于项目维护。从js基础的角度,我看见了模块化的项目维护实操,精彩,基础之强大,不说了。