小羊也疯狂 2018-06-28 03:11 采纳率: 100%
浏览 3963
已采纳

vue中this遇到点问题,到底能不能用箭头函数?

问题1:下面这个是由于在红圈那this改变了所以要先把指向组件实例的this保存到that吗
图片说明
问题2.
图片说明
上面这个箭头函数使this绑定到了定义时的this,也就是vue组件实例上,console.log(this)就是组件实例!
我受上面这个箭头函数的启发在下面这张图中也使用了但是为什么不成功,this不知道绑定到了什么东西上去了
图片说明
console.log(this)
图片说明
为什么不成功,绑定的是个啥?
3.这里只能用es5的方法吗?不能使用箭头函数?

  • 写回答

2条回答 默认 最新

  • 斯洛文尼亚旅游 2018-06-28 03:48
    关注

    问题1:数组的forEach中this是window,需要保存上线文
    问题2:箭头函数中的this,是定义时所在的对象,而不是使用时所在的对象。所以不需要
    问题3:widnow对象,因为你这个是json对象,vue的配置,实际还没有和vue关联,这个json对象作用域在window下,所以是window。(如果是其他对象下执行的,那就是这个对象)

    你的那个a是vue的实例变量名,没错吧。。

    
        var o = {
            watch: {
                keyword:()=> {
                    console.log(this==window)//true
                }
                ,hello:function(){
                    document.onclick=()=>{console.log(this==o.watch)}//watch这个对象
                }
            }
        }
        o.watch.keyword()
        o.watch.hello()
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 想用@vueuse 把项目动态改成深色主题,localStorge里面的vueuse-color-scheme一开始就给我改成了dark,不知道什么原因(相关搜索:背景颜色)
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备
  • ¥20 白日门传奇少一个启动区服和启动服务器的快捷键,东西都是全的 , 他们说套一个出来就行了 但我就是弄不好,谁看看,
  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题