小程序的setdata报错问题,小白很容易遇到。最近小程序在绑定数据中返回DOM,发现一个问题:
最近小程序在绑定数据中返回dom,发现一个问题:
thirdScripterror Cannot read property 'setData' of undefined;at pages/index/index page changtext function typeError: Cannot read PRoperty 'setData' of undefined
changText: () => {
// console.log(_this);
this.setData({
motto: "dad"
})
}但是es5写法是正常的:
changText: (function () {
console.log(this);
this.setData({
motto: "dad"
});
}),为什么es5正确显示而ES6却不行呢?
总结
对此抱着疑问的态度搜集相关的资料,了解到es6箭头函数的一些坑:
箭头函数表达式的语法比函数表达式更短,并且不绑定自己的this,arguments,super或 new.target。这些函数表达式最适合用于非方法函数,并且它们不能用作构造函数。
这段文字来自MDN WEB Doc介绍箭头函数一段文字。
更多的知识可以去查看它的文档:MDN Web Doc
其实说白了es6的箭头函数和es5 function函数看起来差不多,只是写法简化了,其实是不一样的,function声明的函数和箭头函数的作用域不同,这是一个不小心坑的地方。
所以对于这个结果,还是换回es5的function函数去写最好了。








网友评论文明上网理性发言 已有0人参与
发表评论: