javascript:函数的apply,call方法和length属性
2008-10-15 21:10
691 查看
看js的资料,随手记下一些认为实用的东东,以飨和我一样正在学习的诸位看官。
“JavaScript 为函数对象定义了两个方法:apply 和call,它们的作用都是将函数绑定到另外一个对象上去运行,两者仅在定义参数的方式有所区别:
Function.prototype.apply(thisArg,argArray); Function.prototype.call(thisArg[,arg1[,arg2…]]); 从函数原型可以看到,第一个参数都被取名为thisArg,也就是说,所有函数内部的this 指针都会被赋值为thisArg,这就达到了将函数作为另外一个对象的方法运行的目的。两个方法除了thisArg 参数,都是为Function 对象传递的参数。下面的代码说明了apply 和call 方法的工作方式:"(上面这段抄自<<征服ajax>>电子书,如有版权纠纷,请联系电子书作者,与本人无关)
Code
function fun1(a, b, c) {
}
function fun2(a, b) {
}
function fun3() {
}
function test() {
for (var i = 1; i < 4; i++) {
var len = eval(("fun" + i) + ".length");
alert(len);
}
// alert(fun1.length);
// alert(fun2.length);
// alert(fun3.length);
}
与length属性不同,js有一个传递给函数的隐含参数,arguments,它也有一个length属性,下篇细说从头,洗洗睡了。
“JavaScript 为函数对象定义了两个方法:apply 和call,它们的作用都是将函数绑定到另外一个对象上去运行,两者仅在定义参数的方式有所区别:
Function.prototype.apply(thisArg,argArray); Function.prototype.call(thisArg[,arg1[,arg2…]]); 从函数原型可以看到,第一个参数都被取名为thisArg,也就是说,所有函数内部的this 指针都会被赋值为thisArg,这就达到了将函数作为另外一个对象的方法运行的目的。两个方法除了thisArg 参数,都是为Function 对象传递的参数。下面的代码说明了apply 和call 方法的工作方式:"(上面这段抄自<<征服ajax>>电子书,如有版权纠纷,请联系电子书作者,与本人无关)
Code
function fun1(a, b, c) {
}
function fun2(a, b) {
}
function fun3() {
}
function test() {
for (var i = 1; i < 4; i++) {
var len = eval(("fun" + i) + ".length");
alert(len);
}
// alert(fun1.length);
// alert(fun2.length);
// alert(fun3.length);
}
与length属性不同,js有一个传递给函数的隐含参数,arguments,它也有一个length属性,下篇细说从头,洗洗睡了。
相关文章推荐
- JavaScript中的函数:函数的apply、call方法和length属性
- JavaScript中的函数:函数的apply、call方法和length属性
- JavaScript中的函数:函数的apply、call方法和length属性
- javascript基础(函数属性arguments,方法:call,apply)(二十)
- 函数的apply、call方法和length属性
- 函数的属性length、prototype和方法call()、apply()
- JavaScript中函数的属性和call和apply
- JavaScript 函数的apply()方法和call()方法
- 函数的属性和方法(apply()、call())
- Javascript学习---函数内置方法call/apply
- javascript 函数的方法call()和apply()
- JavaScript中函数对象的call()和apply()方法的总结
- javascript 函数中的apply()和call()方法。
- 函数内部属性 arguments、this 以及非继承而来的方法 call()和 apply()
- JavaScript之函数的apply和call方法。
- javascript四种调用方式——方法调用模式、函数调用模式、构造器调用模式和Apply或Call调用模式
- javascript中函数的call,apply及bind方法
- JavaScript的函数call和apply的区别、以及bind方法
- javascript 函数方法apply()和call()的共同点和区别
- 谈谈javascript的Function中那些隐藏的属性/方法:caller/callee/apply/call/bind