求助关于call和apply的问题,反柯里化

下面是uncurring的两种实现

实现1

https://img2.mukewang.com/5c0cbe150001515b04010263.jpg

实现2

https://img.mukewang.com/5c0cbe21000192eb04190210.jpg

两种结果是一样的,但是第二种实现的方式我有点迷糊,主要是这里

第一种方式显示的用self,在这里也就是push方法执行了一下,    self.apply(context, arguments);

但是如下第二种实现方式,却没有发现self执行的痕迹,
按我的理解这里就是用apply修改call的上下文为self,这里也就是push,
但这样有执行push方法吗?难道call内部的实现帮忙执行了self?求解    Function.prototype.call.apply(self, arguments);

瞬间被你点通,谢谢 !

louiszhai

Function.prototype.call.apply(self, arguments);
先用apply修改了call的上下文为self,
后续调用uncurrying,相当于在self上调用call方法,也就执行了self



侃侃无极
浏览 542回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript