如下代码:
function checkJ()
{
     alert(arguments[0]);     return arguments.length;
}
可以这样调这个方法吗?var len = checkJ("参数一",2,"参数3");请知道的神指导下,最好能详细分析一下,js的方法和java的代码有什么区别和联系。thank you !!!js参数java方法

解决方案 »

  1.   

    js可以不用显示定义形参,通过arguments对象获取对应的参数,java不清楚
      

  2.   

    java略懂一点就我了解的
    js是弱类型语言,所以不在乎你传的参数是什么样的,所有参数都可以通过arguments来获取。java传的参数的个数跟类型必须完全符合方法定义的,若有同名且形参个数相同的方法,则选择所传实参类型跟方法定义的形参个数与类型一样的方法执行(类也是一个道理)。。
    至于JS跟JAVA代码上的区别和联系基本没有吧。。
      

  3.   

    你可以把 JavaScript 里的 arguments, 理解成 Java 下 void main(String[] args) 函数里的 args.不同是,在定义函数的时候,不用明确写出。
    JavaScript 引擎在执行时,自动提供 arguments 的参照,方便在程序中使用。------------------------
    ---------------------
    这个问题跟弱类型没关系。弱类型语言,是指 JavaScript 里,定义变量,参数等时,不用指定类型。这个问题和 JavaScript 是 script 语言,不是编译语言,有关。
    Java 是编译语言,通过严格定义函数参数,编译器可以帮助开发者减少执行时错误或意外的发生。而 JavaScript 是 script 语言,需要的是 flexibility. 灵活性。函数里内涵变量 arguments 的引入, 就正是这一灵活性的体现。
      

  4.   

    这是javascript实现多态的方式。很多框架都大量采用这种方法,mootools还搞了个link来帮助实现多态。
      

  5.   

    在js里面你声明方法时没有参数,调用的是给他参数是可以的。。你这样是没问题的。
    js跟java完全不是一个概念。。
    在java里面就有严格的限制,你如果要传参数,声明方法的时候也必须要有。但是不定参数个数的方式,比如下面的代码:
    public void func1(String... s)
    {}String后面加3个点,表示你传递参数的时候可以不定个数,也就是说你可以传一个,可以传两个,10个,,但必须是String类型的。这就好像C#里面的params方式一样。C#代码:
    public void Func1(params string s)
    {}
      

  6.   

    -----------很好的对比!关于如何定义不确定个数的参数,各个语言都或多或少有各自的方法。
    像 C/C++, 可用,va_start(), va_arg() and va_end() 函数。
      

  7.   

    可以function f1(){
       alert(arguments[0])
    }
    f1(2)