原理分析
1、给CONTEXT设置一个属性,属性值一定是要执行的函数。
2、基于CONTEXT.XXX()成员访问执行方法,就可以把函数执行,并且改变里面的THIS。
都处理完后,把给CONTEXT设置的这个属性删除掉。
实例
Function.prototype.call = function(context,...params){ let key = Symbol('key'),//设置唯一值 result; !/^(object|function)$/.test(typeof context) ? context = Object(context) :null; context !=null ? null : context = window;//如果context为null或者undefined,直接赋值为window context[key] = this; result = context[key](...params);//返回值 delete context[key]; return result; }
以上就是javascript中call函数的原理,希望对大家有所帮助。更多Javascript学习指路:
推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。