<script language=javascript>
var str="abc";
function xxx()
{
str = str.replace("a",function (){ 
                var u=arguments[0]; 
                return u; 
            } 
        ); 
}
xxx();
</script>
在上面代码中
arguments是指函数xxx的参数对象,还是 未命名函数function(){}的参数对象?

解决方案 »

  1.   

    运行一下试试看就知道了:<script type="text/javascript">
    var foo = function(){
        alert(arguments.length);
        alert(arguments[0]);
    };foo('a','b');
    </script>
      

  2.   


    function xxx()
    {
    str = str.replace("a",function (){return arguments[0];});
    }
    上面这个例子中的arguments是属于谁的?
    选择:
    1.函数xxx
    2.replace函数
    3.replace中的第二个参数:无名function()
      

  3.   

    function xxx()
    {
    str = str.replace("a",function (){return arguments[0];});
    }上面这个例子中的arguments是属于谁的? 
    选择: 
    1.函数xxx 
    2.replace函数 
    3.replace中的第二个参数:无名function() 
      

  4.   

    无名函数调用的时候没有参数吧,应该是xxx函数的吧
      

  5.   

    个人认为:
    arguments = (nonamefunction.havearguments)?nonamefunction:xxx
    感觉应该和变量的作用域差不多。
    如2L所说,自己试一下不就知道了,我也去试一下。
      

  6.   

    repalce方法的第二个参数如果是方法的话,会把匹配的字符串作为参数传递这个方法
    http://w3school.com.cn/js/jsref_replace.asp
      

  7.   


    var str="abc";
    function xxx()
    {
    str = str.replace("a",function (){ 
    for(var i=0;i<arguments.length;i++){
    alert(arguments[i]);
    }
                    var u=arguments[0]; 
                    return u; 
                } 
            ); 
    }
    xxx();
      

  8.   

    arguments参数应该是 function (){var u=arguments[0];return u; } 的arguments的值 其实是匹配的值
      

  9.   

    逻辑推论一下,加入属于外面的函数,那么意味着,函数内部定义的函数不能用argument?这样设计有何意义?显然有悖语言设计者的初衷。