您的位置:首页 > 移动开发

js学习之arguments,callee,caller,call,appy 笔记

2008-12-26 13:58 417 查看
arguments.length 参数个数
Array.prototype.selfvalue = 1; 定义数组原型初始值
selfvalue 初始值
arguments[i] 获取参数个数从0开始
即arguments并不是一个数组对象。
 
caller 是否被调用
对于函数来说,caller 属性只有在函数执行时才有定义。如果函数是由顶层调用的,那么 caller 包含的就是 null 。
function callerDemo() {
     if (callerDemo.caller) {//是否被调用
         var a= callerDemo.caller.toString();
         alert(a);
     } else {
         alert("this is a top function");
     }
}
function handleCaller() {
     callerDemo();
}
//callerDemao -----this is a top function
//handlecaller------a
 
callee

     返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文。

//callee可以打印其本身
function calleeDemo() {
     alert(arguments.callee);
}
//用于验证参数
function calleeLengthDemo(arg1, arg2) {
     if (arguments.length==arguments.callee.length) {
         window.alert("验证形参和实参长度正确!");
         return;
     } else {
         alert("实参长度:" +arguments.length);
         alert("形参长度: " +arguments.callee.length);
     }
}

 

 

apply and call

    它们的作用都是将函数绑定到另外一个对象上去运行,两者仅在定义参数方式有所区别:

     apply(thisArg,argArray);

     call(thisArg[,arg1,arg2…] ]);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  function null