函数传参:按值还是按引用?
今天在写代码(见这里)的过程中,在一个验证表单的问题上,对于函数传参的过程发生了一点混乱,这引发了我对函数传参过程的思考
1. 首先理解什么是参数
ECMAScript函数的参数与大多数其它语言中函数的参数有所不同。ECMAScript函数不介意传递进来多少个参数,也不在乎传进来参数是什么数据类型。也就是说,即便你定义的函数只接收两个参数, 在调用这个函数时也未必一定要传递两个参数。可以传递一个、三个甚至不传递参数,而解析器永远不会有什么怨言,之所以会这样,原因是ECMAScript中的参数在内部是用一个数组来表示的。函数接收到的始终都是这个数组,而不关心数组中包含哪些参数。在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数。