×

微信小程序的setData报错问题

作者:天空2018.08.30来源:Web前端之家浏览:1900评论:0
关键词:微信小程序

小程序的setData报错问题,小白很容易遇到。最近小程序在绑定数据中返回dom,发现一个问题:

最近小程序在绑定数据中返回dom,发现一个问题:

thirdScriptError

Cannot read property 'setData' of undefined;at pages/index/index page changText function

TypeError: Cannot read property 'setData' of undefined

在js文件写的是(es6):

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函数去写最好了。

箭头函数和function的区别:

  • 箭头函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象

  • 箭头函数不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误

  • 箭头函数不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用Rest参数代替

  • 不可以使用yield命令,因此箭头函数不能用作Generator函数。

温馨提示:本文作者系 ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
http://jiangweishan.com/article/weixsdfsdfoiopipoi.html

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

发表评论:

最新留言

  • Wreb

    加群讨论...

  • 访客

    非常感谢...

  • 访客

    那如果自定义转发的图片未生成完,他给我转发的是默认截屏怎么办...

  • 男装品牌

    文章不错支持一下...

  • 女装品牌

    文章不错非常喜欢...

  • admin

    可以啊,请加群私聊。...

  • 访客

    换链接:http://davin.xin/pc/navigation...

  • 访客

    alert('哈哈')...

首页|JavaScript|HTML|HTML4|HTML5|CSS3|开发工具|性能优化|移动开发|前端教程|性能优化|开发工具|酷站欣赏|UI设计|前端教程

Copyright © 2013-2018 Web前端之家(www.jiangweishan.com) 版权所有 All Rights Reserved.
粤ICP备12067512号-1

Copyright Your WebSite.Some Rights Reserved.

Powered By Z-BlogPHP 1.5.2 Zero