1.new做了什么
(1) 创建一个新对象;
(2) 将构造函数的作用域赋给新对象(因此 this 就指向了这个新对象) ;
(3) 执行构造函数中的代码(为这个新对象添加属性) ;
(4) 返回新对象。
2.什么是发布订阅者
vue.js 则是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性
的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。
通过Object.defineProperty给每个发布者或者说需要观察的对象Observer添加getter和setter方法,
只要该对象数据发生变化那么就触发setter方法了就会通知Watcher订阅者,订阅者有多个由消息订阅器dep统一管理,
Compile负责编译模板,将模板中的变量转换成数据渲染出来,同时将每个指令对应的节点绑定更新函数转化成订阅者
一旦数据变化就会收到通知,更新视图。MVVM作为数据绑定的入口,整合了Observer Watcher Compile三者通过
Observer监听自己model数据变化,Compile解析模板指令,利用Watcher搭起Observer和Compile之间的通信桥梁,达
到数据变化--视图更新,视图更新--数据变化的效果。
原文链接:https://blog.csdn.net/lynnwonder6/article/details/89790759
3.路由的原理
vue-router通过hash与History interface两种方式实现前端路由,更新视图但不重新请求页面”是前端路由原理的核心之一
4.移动端项目的webpack配置
https://www.jianshu.com/p/78e4815889e1
5.js的循环机制
https://www.cnblogs.com/yugege/p/9598265.html
所有的任务可以分为同步任务和异步任务,同步任务,顾名思义,就是立即执行的任务,同步任务一般会直接进入到主线程中执行;而异步任务,就是异步执行的任务,比如ajax网络请求,setTimeout 定时函数等都属于异步任务,异步任务会通过任务队列( Event Queue )的机制来进行协调。