call,apply,callee,caller

it2024-11-19  10

call:

描述:

调用一个对象的一个方法,以另一个对象来替换当前的对象.

语法:

call([thisObj[,args1[,args2[args3[,...]]]]])

参数:

thisObj:可选项,可被用作当前对象的对象.

args1,args2,args3,argsN:可选项,将被传递的参数.

说明:

call方法可以用来代替另一个对象调用方法.

call将一个对象的初始上下文转化为thisObj所指定的对象.

如果没有提供thisObj,则Global对象被用做thisObj.

apply作用和call相同,区别在于两者仅在语法使用上有所区别:

apply([thisObj[,[args1,args2,args3...argsN]]])

注意:在使用apply时,如果后面的参数提供的不是一个数组,或者arguments对象时,那么将导致一个TypeError.

例子:

function showName(){ document.write(this.name+'<br/>'); } var name1={name:"name1"}; var name2={name:"name2"}; var name3={name:"name3"}; showName.call(name1);//输出name1 showName.call(name2);//输出name2 showName.call(name3);//输出name3

callee:

描述:

返回正被执行的Function对象.

语法:

[function.]arguments.callee

参数:

function:可选项.当前正在被执行的Function对象的名称.

说明:

callee属性是arguments对象的一个成员.仅当相关函数正在执行时才可用.

callee属性是arguments对象的一个成员,它表示对函数对象本身的引用,这有利于匿名函数的递归.

例子:

function Sum(i){ if(i==1){ return 1; }else{ return i+Sum(i-1); } } document.write(Sum(100));

caller:

描述:

返回一个对函数的引用.该函数引用了当前函数.

语法:

FunctionName.caller

参数:

FunctionName:所执行的函数的名称.

说明:

对于函数来说,caller属性只有在函数执行时才有定义.如果是由JScript程序的顶层调用的,那么caller包含的就是null.

例子:

function fun(){ (function(){ var funName =arguments.caller.toString(); alert(funName); })(); } fun();//输出[object object]

转载于:https://www.cnblogs.com/oneword/archive/2010/03/16/1687404.html

相关资源:javascript中call,apply,callee,caller用法实例分析
最新回复(0)