arguments.callee

function Sing()

    {

        with(arguments.callee)

          alert(author + ":" + poem);

    };

    Sing.author = "李白";

    Sing.poem = "汉家秦地月,流影照明妃。一上玉关道,天涯去不归";

    Sing();

    Sing.author = "李战";

    Sing.poem = "日出汉家天,月落阴山前。女儿琵琶怨,已唱三千年";

    Sing();

//解释

callee 

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

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

函数的递归或者保证函数的封装性,例如下边示例的递归计算1到n的自然数之和。而该属性 

仅当相关函数正在执行时才可用。还有需要注意的是callee拥有length属性,这个属性有时候 

用于验证还是比较好的。arguments.length是实参长度,arguments.callee.length是 

形参长度,由此可以判断调用时形参长度是否和实参长度一致 

你可能感兴趣的:(arguments)