为了账号安全,请及时绑定邮箱和手机立即绑定

vue里面的this指向变了,有几种能代替全局this方法?

vue里面的this指向变了,有几种能代替全局this方法?

Smart猫小萌 2019-03-07 18:27:26
上面的使用vue+mui的有的时候this指向会发生变化,但是不想用var _this = this来把全局赋给一个变量,有没有其他方法!我用过Window,document,不行!!
查看完整描述

2 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

不用 that = this 的话,最好的方法就用bind了,
understanding-javascript-function-prototype-bind

可以参考下这种写法 把setTimeout 里面的函数提出来

var obj = {a:1};


obj.fn2 = function(){console.log(this)}


obj.fn = function(){setTimeout(this.fn2.bind(this),300)}


obj.fn()   // 这里的this 就指向了obj  了


查看完整回答
反对 回复 2019-03-08
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

还有一个很好的办法,一般初始化Vue实例的时候都是直接new Vue({...}),但也可以这么写:

var app = new Vue({...});

这样在里面的数据可以通过app.data之类的能获取到,应该说整个实例包含的内容都能获取到。


查看完整回答
反对 回复 2019-03-08
  • 2 回答
  • 0 关注
  • 5865 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号