在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實例了.
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态