• call,apply,callee,caller


    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]
  • 相关阅读:
    IOS 关于分辨率的那点事
    IOS多线程编程之NSOperation和NSOperationQueue的使用
    UI应遵循的三大网站设计原则
    Xcode 4.4中LLVM compiler 4.0带来的ObjectiveC新语法特性
    iPhone实战:操作SQLite
    flock()函数使用示例
    libtool: syntax error near unexpected token `]*'
    求职简历撰写要点
    thrift的js客户端收到含汉字字符中显示为乱码解决方法
    多写引发的思考
  • 原文地址:https://www.cnblogs.com/oneword/p/1687404.html
Copyright © 2020-2023  润新知