网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

[沫沫金]JS匿名函数this调用变量报错

背景

今天使用Dcloud扫码功能,success成功方法设置data中的scanContext变量,报“undefined”!

成都创新互联专注于企业全网整合营销推广、网站重做改版、鄢陵网站定制设计、自适应品牌网站建设、H5开发购物商城网站建设、集团公司官网建设、外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为鄢陵等各大城市提供网站开发制作服务。

思路

一、怀疑是扫码内容不是JSON对象,无法点属性报错。排除,使用JSON.parse转换成功后,依然报“undefined”。
二、怎么就“undefined”呢,百思不得其解。继续想办法

解决

突然,看到附件选择的方法,人家是设置的this.fileUrl成功的。比对下,什么区别。发现定义的匿名方法,写法不同。我的是function(res),人家的是(res) =>箭头。考下去试试,

成功了!!!

原因

这就是JS中匿名方法的this指向问题,function的声明方式,this指向的是本身,父级的变量都无法访问。请阅读下面的源码,运行会报错吗?

扩展

请熟悉的朋友跟我一起读:var that = this;//大法好
更时尚的是箭头声明 success:(res)=>{} 更时尚、更流行、高大上。

以上,是关于JS匿名函数this的指向问题。踩过的坑,一起欢呼。


分享题目:[沫沫金]JS匿名函数this调用变量报错
文章网址:http://bjjierui.cn/article/gopjjj.html

其他资讯