Javascript 为什么函数语法在setTimeout()中不起箭头语法的作用?
我有一个简单的组件,它有一个只包含一个框的模板,这个框在showBox为true之前不会被渲染(它在数据中表示为false) 但是在我使用了箭头语法之后,它工作了,这很奇怪,因为我知道这两者之间没有区别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) } 该应用程序可以在以下位置查看:它是关于“失
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)
}