下面是uncurring的两种实现
实现1
实现2
两种结果是一样的,但是第二种实现的方式我有点迷糊,主要是这里
第一种方式显示的用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
相关分类