小程序中闭包问题

4014关注12473浏览

var user = 'The Global';

var obj = {

user: 'The object',

getUser: function (){

return function (){

return this.user;

}

}

};


Page({


/**

  * 页面的初始数据

  */

data: {


},


btn_run: function () {

console.log(obj.getUser()());

}

})

如上所述代码,在闭包中使用this对象调用obj对象中的user属性时,会报名undifine错误。

这是为什么?

VM1646:1 thirdScriptError

Cannot read property 'user' of undefined;at pages/index/index page btn_run function

TypeError: Cannot read property 'user' of undefined

    at http://127.0.0.1:63456/appservice/pages/index/index.js:8:18

    at e.btn_run (http://127.0.0.1:63456/appservice/pages/index/index.js:21:30)

    at e.<anonymous> (http://127.0.0.1:63456/appservice/__dev__/WAService.js:18:4907)

    at e.a (http://127.0.0.1:63456/appservice/__dev__/WAService.js:17:31002)

    at z (http://127.0.0.1:63456/appservice/__dev__/WAService.js:17:24941)

    at Function.<anonymous> (http://127.0.0.1:63456/appservice/__dev__/WAService.js:17:26562)

    at http://127.0.0.1:63456/appservice/__dev__/WAService.js:18:509

    at http://127.0.0.1:63456/appservice/__dev__/WAService.js:6:26768

    at e.(anonymous function) (http://127.0.0.1:63456/appservice/__dev__/WAService.js:4:4917)

    at a (http://127.0.0.1:63456/appservice/appservice:1008:9451)


展开全部
收起
2回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Strawberry8

    20人对此回答表示赞同

    可以参考一下javascript中this的用法

    展开
    20
    0回复
    发布于 5年前

    评论(0)

    收起评论

  • 刀豆三郎

    2人对此回答表示赞同

    小程序的页面内的全局变量,应该是需要放在data里的。可以去了解一下vue.js跟小程序的js还是比较相通的

    展开
    2
    0回复
    发布于 5年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部