回調函數作為成員函數,vue 執行函數this_vue回調函數中this無效

 2023-10-04 阅读 22 评论 0

摘要:在vue中使用回調函數,發現函數體中使用this無效,無法調到methods里面定義的getCurrentExtent()函數。handler.setInputAction(function(wheelment) {var extent = this.getCurrentExtent(viewer);console.dir(extent);回調函數作為成員函數,}, Cesium.Scre

在vue中使用回調函數,發現函數體中使用this無效,無法調到methods里面定義的getCurrentExtent()函數。

handler.setInputAction(function(wheelment) {

var extent = this.getCurrentExtent(viewer);

console.dir(extent);

回調函數作為成員函數,}, Cesium.ScreenSpaceEventType.WHEEL);

回調函數的內部的this并非指向當前的vue實例;如果要使用,用在外部函數定義的變量存儲的this,也就是當前vue的實例。

var _this = this;

handler.setInputAction(function(wheelment) {

var extent = _this.getCurrentExtent(viewer);

vue接收函數返回值?console.dir(extent);

}, Cesium.ScreenSpaceEventType.WHEEL);

也可改為箭頭函數來實現

handler.setInputAction(wheelment => {

var extent = this.getCurrentExtent(viewer);

函數指針回調函數,console.dir(extent);

}, Cesium.ScreenSpaceEventType.WHEEL);

箭頭函數和匿名函數有個明顯的區別:箭頭函數內部的this是詞法作用域,由上下文確定。此時this在箭頭函數中已經按照詞法作用域綁定了。很明顯,使用箭頭函數之后,箭頭函數指向的函數內部的this已經綁定了外部的vue實例了.

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/113376.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息