Function.prototype.call
方法说明
call() 允许为不同的对象分配和调用属于一个对象的函数/方法。
call() 提供新的 this 值给当前调用的函数/方法。你可以使用 call 来实现继承:写一个方法,然后让另外一个新的对象来继承它(而不是在新对象中再写一次这个方法)
源码的关键点在于
在传递进来的上下文对象中构造一个需要执行的方法,比如:
ctx = { fn: test () { console.log(this.name) } }
,这样方法内this就会指向ctx对象,就达到了在指定的上下文对象上运行不属于它的方法
源码
Function.prototype.myCall = function (ctx, ...args