您好,登錄后才能下訂單哦!
今天使用Dcloud掃碼功能,success成功方法設(shè)置data中的scanContext變量,報(bào)“undefined”!
一、懷疑是掃碼內(nèi)容不是JSON對象,無法點(diǎn)屬性報(bào)錯(cuò)。排除,使用JSON.parse轉(zhuǎn)換成功后,依然報(bào)“undefined”。
二、怎么就“undefined”呢,百思不得其解。繼續(xù)想辦法
突然,看到附件選擇的方法,人家是設(shè)置的this.fileUrl成功的。比對下,什么區(qū)別。發(fā)現(xiàn)定義的匿名方法,寫法不同。我的是function(res),人家的是(res) =>箭頭。考下去試試,
成功了?。。?/p>
這就是JS中匿名方法的this指向問題,function的聲明方式,this指向的是本身,父級(jí)的變量都無法訪問。請閱讀下面的源碼,運(yùn)行會(huì)報(bào)錯(cuò)嗎?
<script type="text/javascript">
var num = 100;
var thah={
success:function(){
alert(this.num);
}
}
thah.success();
</script>
請熟悉的朋友跟我一起讀:var that = this;//大法好
更時(shí)尚的是箭頭聲明 success:(res)=>{} 更時(shí)尚、更流行、高大上。
以上,是關(guān)于JS匿名函數(shù)this的指向問題。踩過的坑,一起歡呼。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。