就是使用
"🔗箭头函数" (https://link.segmentfault.com/?enc=YWjdZXkBmC6hTzizPMGbdw%3D%3D.9wRf8kyo3fITLNQSD5fY5DmimVhDetGtDS6c%2BfqoS4cUxPDTcpGsOUdFDgJ9H48jeQkmx6TgpK9YA5G0Gokyo4VsEcxExXL17w4ZuMNqsDk%3D)
来保持后续业务代码的 "this" 指向是上层作用域中的 "this"。
比如说,我们在一些 "wx.xx" 之类API的回调中使用:
page() {
scanCode() {
wx.scanCode({
scanType: ['qrCode'],
success: (res) => {
console.log('获取扫码结果', res);
this.setData({
qrCode: res.result
})
},
fail: (err) => {
console.log('扫码失败', err);
}
});
}
}
就不需要在外部在定义一个 "const that = this" 了。
在非小程序开发的时候也会有遇到这样的情况,也可以使用 箭头函数 改写回调函数
export default {
...
methods: {
onDeleteConfirm (id) {
const that = this;
this.$confirm({
title: "确认删除",
content: "是否删除选中文件?",
- onOk: function () {
- that.submitDeleteAction(id)
- }
+ onOk: () => {
+ this.submitDeleteAction(id)
+ }
})
}
}
}
***
很早之前 "react" 中也会使用
".bind()" (https://link.segmentfault.com/?enc=P7Bd5PPP4gWR9oQLH38Apw%3D%3D.Aqwnwq7rYNH%2B5YyDq6mWo24J8fhVv4gq15tYF1kGNkzOKC%2F%2B3lcjw1l2Xei6vV8vlx0NhWyu%2BvizIRv1aaXo4C90G5dt8Z2AWbh5PVoHUqHiLEJeJLlPzE8CYSE4q%2FXj)
或者 箭头函数 来指定 "this" 指向。
this.deleteRow(id, e)}>Delete Row
Delete Row
"Handling Events –
React" (https://link.segmentfault.com/?enc=hnEGLl4Oje%2BudOE2van4Pg%3D%3D.BOw0Ss5rmE5ZsRz1VZea3umniAn5pp75WYJNZHp8nUoTUwZ9TOODDs9fegsFt32%2FM4UiAULAqZ3iFS9xshW72MjfOeROjQ74pPlt1z%2B%2FShaZTzLzjXZ4Xeh0bjjgSt52)