构造函数的this

102 阅读1分钟

Vue源码中,用于创建Vue的是一个构造方法

function Vue (options) {
  if (process.env.NODE_ENV !== 'production' &&
    !(this instanceof Vue)
  ) {
    warn('Vue is a constructor and should be called with the `new` keyword')
  }
  this._init(options)
}

new Vue({...})创建Vue实例,若是直接执行Vue({...})会报错缺少new

实际就是构造方法如何使用,此处思考this在直接执行时指向何处。在浏览器控制台输入以下测试代码

image.png 从结果可以看出,Vue函数中的this默认指向全局的Window对象,若Vue作为一个构造函数执行,this指向的时创建的Vue实例。