收藏
回答

关于this 变量的问题,自定义 function 中无法获取this 变量

问题模块
API和组件

这里是我的被编译后的代码。其中  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);
  })}


最后一次编辑于  2017-11-13
回答关注问题邀请回答
收藏

1 个回答

  • Can🌴
    Can🌴
    2017-11-13

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


    你可以写 Page({

        preAnswer: function() {

    this.data

    }

    })

    ...

    但是

    Page({

    preAnswer: () => {

    this === undefined

    }

    }


    2017-11-13
    赞同
    回复