最近在使用jQuery的$.each方法时很,突然想到$.each($('div'),function(index,entity){});中的这个index和entity是哪冒出来的,而且可有可无的,而且这么高大上的能告诉我们当前遍历的下标和实例。所以看了一下jQuery源代码,是这么写的:
aaarticlea/png;base64,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" alt="" />
调试的时候走的是标红的这段代码,然后用到了callback.call这个函数,于是翻看了一下《js高级程序设计》,其中有比较深的解释。
首先,function是一个指向Function对象,函数名是一个指向函数的指针。那么在函数体内,就会有一个作用域,即this关键字。
this关键字指的是函数运行的作用域,举个例子来说,
<script type="text/javascript">
function funcA() {
alert(this);
alert("Function A");
}
</script>
上面这段代码中的函数funcA定义在全局环境中,那么函数体内的this即window对象。
下面该到call和apply的说明了。以call函数为例,call的第一个参数,就是改变函数的作用域,后面的参数为传入函数的所需的参数,必须与原函数的参数一直,举例说明:
<script type="text/javascript">
var testO = { name: "Lily" };
function funcA(a,b) {
alert(this);
alert("Function A");
} function funcB(a, b) {
funcA.call(testO, a, b);
} funcB(1,2); //this变成了testO
</script>
我们定义funcB函数的中,调用了funcA的call函数,这个时候我们改变了funcA中this的指向,原本指向window的,现在指向了call的第一个参数testO这个对象。而且调用call时,因为funcA函数有两个参数,所以如果要想funcA传递参数,必须一一指出参数,即后面的两个参数a和b,或者可以只穿第一个参数
即:funcA.call(testO);或者只传a,即:funcA.call(testO,a);
而apply与call的区别仅在于,apply的第二个参数可以是数组形式,而且不必一一指出参数,funcA.apply(testO,[a,b])
介绍完call与apply的基本用法,该说说他哥俩真正的用武之地了,扩充函数赖以运行的作用域。
<script type="text/javascript">
window.color = "透明";
var testObj = { color: "红色" }; function testFuc() {
alert(this.color);
} $(function () {
1.testFuc(); //弹出“透明”
2.testFuc(this); //弹出“undefined”
3.testFuc.call(this.parent); //弹出“透明”
4.testFuc.call(window); //弹出“透明”
5.testFuc.call(testObj); //弹出“红色”
});
</script>
上面这段代码演示了call的作用。第一个函数调用,this指向了window,所以弹出了window的color属性。
第二个函数可能有些朋友以为也会弹出透明,但是请先确定我们的函数运行在$(function(){});中,这个jQuery的函数,了解jQuery的朋友都很清楚,在
$(function(){});中this的作用域指向的是document,然后我们调用testFunc,要弹出document的color,当然是未定义的。
第三个函数将testFunc的this指向了document的亲爹window,弹出window的color当然也是没有问题的。
第四个函数就更加直白了,把window传进去了
第五个函数,将testFunc的this指向了testObj,弹出了红色。
讲到这里,用法大家应该都有所了解了,但是具体怎么去理解怎么去使用还是看自己的套路。
我是这么理解的,可以把这种用法看成是C#或者java中的泛型方法。比如一个C#方法的定义
public void Test<T>(T a, T b) { }
这样我们就可以实现对方法的扩展,实现通用的目的。
以上都是本人自己的看法和观点,有什么不对之处还请大家指出来共同学习。