当前位置:首页 > 前端

js关于this的小技巧

Z先生5年前 (2020-11-19)前端964

这段时间,vue写的多了,习惯了es6的方式写函数,但是这种写法很容易导致this失效,比如刚刚发布的vue深度监听的问题,用了es6的写法,this就没法用,换回传统写法就可以了。

// es6写法,这样写this没法用,this成windows对象了
watch: {
data: {
handler: (newVal, oldVal) => {
console.log('data', newVal);
},
deep: true,
immediate: true
}
},

传统写法

// 传统写法
watch: {
data: {
handler: function(newVal, oldVal){
console.log('data', newVal);
},
deep: true,
immediate: true
}
},

经查资料获得因为这个时候watch使用的是=>,是箭头函数,那么这时候的this,其实是window对象,而不是当前vue 对象。

分享给朋友:

相关文章

VUE/UNIAPP事件传参

第一种方式使用data<view @click="handleClick" data-info="大家好">点击按钮</v…

vue踩坑记20201027

elemeui/antd等框架,再使用复选框、下拉选择框时,如果通过v-model绑定了值,那么选择时,界面不会改变。方法一:使用default-value指定默认值,@change去改变本该v-mo…

问题: - did you register the component correctly......

问题: - did you register the component correctly......

问题:无法使用tree组件提示 Unknown custom element:<a-tree> - did you register the component correctly? Fo…

Ant Design table自定义复选框的默认不可选状态

官网上的getCheckboxProps中的disabled的值是record.name==="XXX",我在用的过程中肯定是一个list,然后我就想用函数返回true或false…

npm锁定依赖包版本

在某些特殊时候,npm需要锁定依赖包的版本,其方法有2种 安装时后面代参数-E修改package.json文件,去掉版本号前面的^ 常用命令:…

elemeui表格中点击修改最优雅的方式

需求表格中,某一列需要点击修改。并且能拦截回车事件。 解决方案vue代码 {{ row.order }} JS methods 方法```…

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。