首先在javascript中的函数传值并有没个数限制,即使你写成function(num1,num2){},表面上看上去是接收两个传值,其实是并没有限制。在function内有一个内置对象argument,其会接受传过来的所有参数,并且如果你写成function(num1,num2){}的形式的话,argument对象会与相应的参数挂钩,即argument[0]=num1,并且改动argment[0],num1也会改变。
其次也是最重要的一点,javascript中传参,分两种,一种是值传递,另一种是引用传递。其实区别只是,在用基本类型的时候就是值传递,在用引用类型的时候就是引用传递。值传递不会因为在函数内部的改变而影响函数外部。而引用传递会因为在函数内部的改变而外部也改变。因为引用传递是传递了这个对象的引用地址,因此实际是指向同一个对象。