收藏
回答

小程序 ES6 写法,this 变成未定义

Page({
 
  /**
   * 页面的初始数据
   */
  data: {
    king: "tiger"
  },
 
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    this.testES6();
    this.test()
  },
  testES6: res => {
    console.log("testES6#", this);
  },
  test: function(res) {
    console.log("test#", this);
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {
 
  },
 
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {
 
  },
 
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {
 
  },
 
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {
 
  },
 
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {
 
  },
 
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {
 
  },
 
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {
 
  },
 
})

情况1



情况2



求大佬解释一下,这是为啥

最后一次编辑于  08-09  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

4 个回答

  • 邢君可
    邢君可
    08-09

    => 表达式  ()=>{ this//这个指的是外面的this ,而 es6转es5 启用严格模式,没有this (window) 所以是undefined }

    08-09
    赞同 1
    回复 1
    • MUJO
      MUJO
      08-09
      感谢回复,明白了
      08-09
      回复
  • zhcode
    zhcode
    08-09

    建议先去看一下箭头函数的用法和特性https://es6.ruanyifeng.com


    08-09
    赞同 1
    回复 1
    • MUJO
      MUJO
      08-09
      感谢回复,明白了
      08-09
      回复
  • 铭锋科技
    铭锋科技
    08-09

    你的res是什么问下?

    08-09
    赞同
    回复 1
    • MUJO
      MUJO
      08-09
      res 随便定义的,这个不是ES6的语法方式么
      08-09
      回复
  • 鲤子
    鲤子
    08-09

    testEs6() {}即可

    08-09
    赞同
    回复
问题标签