VUE代码中的window.data是用来做什么的?

不理解为什么要给一个window.data而不是直接返回data?

原始代码链接在这里:https://github.com/PacktPubli...

window.data = {
  isworking: true
};
export default {
  components: {
    ControlsComponent,
    CountdownComponent,
    KittensComponent,
    StateTitleComponent
  },
  data() {
    return window.data   //这里直接使用data不行么?
  }
}
</script>

因为window的解释在这里:

http://www.w3school.com.cn/js...

Window 对象描述 Window 对象表示一个浏览器窗口或一个框架。在客户端 JavaScript 中,Window
对象是全局对象,所有的表达式都在当前的环境中计算。也就是说,要引用当前窗口根本不需要特殊的语法,可以把那个窗口的属性作为全局变量来使用。例如,可以只写
document,而不必写 window.document。

阅读 8.9k
1 个回答

window 是一个全局对象 这么做可能是为了在全局获取这个组件中的 data
省略 window 会先从当前作用域中寻找 data,如果找不到则在 window 对象上寻找
如果 window 对象上也没有 data 则会返回 undefined
在你这个代码中当然 window.data === data 是相等的

window.data = { location }

function fn () {
  const data = { un: '', pwd: '' } // 局部定义了同名 data 变量
  console.log(data) // { un: '', pwd: '' }
  console.log(window.data) // { location: Location }
  console.log(window.data === data) // false
}

fn()
window.data = { location }

function fn () {
  console.log(data) // { location: Location }
  console.log(window.data) // { location: Location }
  console.log(window.data === data) // true
}

fn()
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题