小程序
小游戏
企业微信
微信支付
扫描小程序码分享
https://developers.weixin.qq.com/s/cp4rzdmN7fgU
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
这个是箭头函数和普通函数作用域的问题
普通函数的this是调用者
箭头函数的this是上下文
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
1、首先,fun3和fun4的实参可以去掉了,不用放在那儿迷惑自己;
2、fun1和fun2是对象方法的两种不同写法,fun1是简写而已,this指向和普通函数没什么区别,由调用时的作用域链决定。onLoad由page对象调用,即page.onLoad(),所以onLoad函数中,this指向page对象,而fun1和fun2由onLoad中的this调用,也指向page对象;
3、箭头函数的this由定义时的上下文决定,并不关心是谁调用了它,去找定义时的位置即可,可以画一下作用域气泡,fun3和fun4的this指向的应该是page被定义时的上下文对象,打印的是undefined,可见微信并没有向我们暴露出来,要么是一个包含某种不想让我们看到的属性的对象,或者顶级对象。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
这个是箭头函数和普通函数作用域的问题
普通函数的this是调用者
箭头函数的this是上下文
1、首先,fun3和fun4的实参可以去掉了,不用放在那儿迷惑自己;
2、fun1和fun2是对象方法的两种不同写法,fun1是简写而已,this指向和普通函数没什么区别,由调用时的作用域链决定。onLoad由page对象调用,即page.onLoad(),所以onLoad函数中,this指向page对象,而fun1和fun2由onLoad中的this调用,也指向page对象;
3、箭头函数的this由定义时的上下文决定,并不关心是谁调用了它,去找定义时的位置即可,可以画一下作用域气泡,fun3和fun4的this指向的应该是page被定义时的上下文对象,打印的是undefined,可见微信并没有向我们暴露出来,要么是一个包含某种不想让我们看到的属性的对象,或者顶级对象。