关于this 变量的问题,自定义 function 中无法获取this 变量
发布于 6 年前 作者 liaojing 17685 次浏览 来自 问答

这里是我的被编译后的代码。其中  prevAnswer 方法中的undefined 为 源代码中的this 有谁遇到过同样的问题吗。这个方法我会在页面中的按钮进行绑定,去触发。

var app = getApp();
Page({
  /**
   * 页面的初始数据
   */
  data: {
    askNO: 1,
    ask: {},
    progress: 8.333,
    askLength: 0,
    answerIng: false,
    finish: false
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function onLoad(options) {
    var questionnaire = app.globalData.questionnaire;
    var lastIndex = app.globalData.lastAnswerAskIndex - 1;
    var ask = questionnaire.askList[lastIndex == null ? 0 : lastIndex];
    console.log(this);
    // let that = this;
    this.setData({
      askLength: questionnaire.askList.length,
      askNO: lastIndex + 1
    });
    // this.fullAsk(that, ask, lastIndex);
  },
  prevAnswer: function prevAnswer(e) {
    console.log(e);
    console.log(undefined);
    if (undefined.data.answerIng) {
      return;
    }
    // let questionnaire = app.globalData.questionnaire;
    // let lastIndex = --app.globalData.lastAnswerAskIndex - 1;
    // let ask = questionnaire.askList[lastIndex];
    // this.fullAsk(this, ask, lastIndex);
  })}
1 回复

理解下ES6的箭头函数就知道了。

你可以写 Page({

    preAnswer: function() {

this.data

}

})

但是

Page({

preAnswer: () => {

this === undefined

}

}

回到顶部