Function.prototyoe.call.apply
Posted x_x
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Function.prototyoe.call.apply相关的知识,希望对你有一定的参考价值。
刚刚在一个群里看到有人问 Function.prototype.call.apply(obj, args) 如何理解,觉得挺有意思的。刚开始被惯性思维干扰了,一直都是 call 和 apply 分开用呀!!!
如果理解 [].slice.apply(obj, args) 的话,也就能理解 Function.prototype.call.apply(obj, args) 了。
由于“.”的操作顺序是从右到左,所以
(1)首先以最右边的“.”为分割点,左边的 obj1=Function.prototype.call 为一个整体,调用 obj1.apply(obj, args);
(2)作用于替换成 obj 之后变成,就变成了 obj.call(args[0], args[1], ...);
(3)再次替换作用于,变成args[0](args[1], ...);
就这样啦
以上是关于Function.prototyoe.call.apply的主要内容,如果未能解决你的问题,请参考以下文章