javascript - 将普通函数调用的this指向document
本文介绍了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屋!
查看全文