经常能使用到call和apply的情况下进行内部实现
<script>
//ES6版
Function.prototype.newCall = function (obj) {
//判断参数传入的值是否为null或者undefined
obj = obj ? Object(obj) : window;
//this指向设置为调用对象
obj.func = this;
//截取参数数组中除了元对象外的参数列表
let args = [...arguments].slice(1);
//当前保存有this指向和参数内容的变量
let res = obj.func(...args);
//删除该函数
delete obj.func
//返回上下文
return res
版权声明:本文为weixin_45681557原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。