就是使用 [🔗箭头函数](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)