call和apply重写

  • Post author:
  • Post category:其他



经常能使用到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 版权协议,转载请附上原文出处链接和本声明。