Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么函数语法在setTimeout()中不起箭头语法的作用?_Javascript_Function_Vue.js_Vue Component - Fatal编程技术网

Javascript 为什么函数语法在setTimeout()中不起箭头语法的作用?

Javascript 为什么函数语法在setTimeout()中不起箭头语法的作用?,javascript,function,vue.js,vue-component,Javascript,Function,Vue.js,Vue Component,我有一个简单的组件,它有一个只包含一个框的模板,这个框在showBox为true之前不会被渲染(它在数据中表示为false) 但是在我使用了箭头语法之后,它工作了,这很奇怪,因为我知道这两者之间没有区别 mounted(){ setTimeout(()=> { this.showBox = true console.log("box shows",this.showBox)},this.delay) } 该应用程序可以在以下位置查看:它是关于“失

我有一个简单的组件,它有一个只包含一个框的模板,这个框在showBox为true之前不会被渲染(它在数据中表示为false)

但是在我使用了箭头语法之后,它工作了,这很奇怪,因为我知道这两者之间没有区别

   mounted(){
  setTimeout(()=> {
  this.showBox = true
  console.log("box shows",this.showBox)},this.delay)
  }
该应用程序可以在以下位置查看:

它是关于“失去这个”。箭头函数从词法范围中检索
,但不在函数或函数表达式中。在您的情况下,您可以创建一个“函数包装器”,或者使用
func.bind(obj)

这是关于“失去这个”。箭头函数从词法范围中检索
,但不在函数或函数表达式中。在您的情况下,您可以创建一个“函数包装器”,或者使用
func.bind(obj)

“我知道没有区别”啊,但是有“我知道没有区别”啊,但是有区别
mounted(){
     setTimeout(function(){
      this.showBox = true
      console.log("box shows",this.showBox)},this.delay)
      }
   mounted(){
  setTimeout(()=> {
  this.showBox = true
  console.log("box shows",this.showBox)},this.delay)
  }