函数执行上下文

函数执行上下文

function foo(){

                return ()=>{

                    return ()=>{

                        return ()=>{

                            console.log('id:',this.id);

                        };

                    };

                };

            }

            var f=foo.call({id:1});


这句话 var f=foo.call({id:1});

foo.call({id:1})赋值给f是什么意思?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕星星 2021-05-10 17:35:42

同学你好,函数加了括号才会执行,所以函数执行的时候绑定this指向,函数还是执行的 。

​而函数里的函数,外部函数执行,内部函数不执行,因为没有加()调用。老师这样写才是调用的

http://img1.sycdn.imooc.com//climg/6098fe6309675b1502410119.jpg

祝学习愉快!

好帮手慕星星 2021-05-10 15:24:57

同学你好,foo函数被调用后有返回值,然后赋值给了f变量,可以输出看看

http://img1.sycdn.imooc.com//climg/6098dc6a0900408803110128.jpg

http://img1.sycdn.imooc.com//climg/6098dc7109f7c76606850281.jpg

call({id:1})中是改变了this指向,调用最后一个方法的时候,this.id值为1

http://img1.sycdn.imooc.com//climg/6098dfab091a2b1902400122.jpg

http://img1.sycdn.imooc.com//climg/6098dfb20909189401410031.jpg

祝学习愉快!

  • 提问者 曼曼前端 #1

    就是在函数执行的时候绑定this指向,函数还是执行的对吧?

    函数里有函数,外部函数执行,内部函数不执行吗?

    2021-05-10 15:38:20
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师