javascript - 将普通函数调用的this指向document

查看:159
本文介绍了javascript - 将普通函数调用的this指向document的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题


麻烦各位大神给讲讲这道题 有点不明白

解决方案

先化简一下你的代码吧

    document.getElementById = (function(func){
      return function(){
        return func.apply(document,arguments);
      }
    })(document.getElementById);

    var getId = document.getElementById;
    var div = getId('div1');
  
    alert(div.id);

上面这是你的源代码,首先化简你的那个函数

    //因为后面那个函数是自动执行的,所以直接变成这样,用传的参数 document.getElementById 替换了函数里面的 func 这个形参
    document.getElementById = function(){
      return document.getElementById.apply(document,arguments);
    }

    //继续化简,给 document.getElementById 加上括号,就是执行这个函数后,他的式子, arguments就是传进来的实参所组成的一个伪数组
  document.getElementById() = document.getElementById.apply(document, ["参数1","参数2","参数3..."]);

    //对他的化简到此为止,下面对 var div 部分开始化简
    var div = getId('div1');//化简为
    var div = document.getElementById('div1');//继续化简
    var div = document.getElementById.apply(document, ["div1"]);

这里就要探讨apply这个方法的意思的,在现在这种情况下,如果再继续化简,会变成下面这样

    var div = document.getElementById("div1");

这篇关于javascript - 将普通函数调用的this指向document的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆