相信每一位刚接触javascript的同学在函数参数传递上都会很疑惑,原因无他,那就是它的语法太怪异了,你定义一个函数
例如
1
2
3
|
function test(name,msg){
return 'hello' + name + msg;
}
|
那么你在调用的时候怎么调呢,你可以test('Eric'),test('Eric','welcome to javascript')甚至你可以给它传递任意多个参数,并且类型随意.这是多么爽的一件事情,学过c++/c#或者java的同学可能就会想到函数重载。但是,我要告诉你的是,javascript中不存在函数重载,如果你定义了两个同名函数,那么先定义的函数将被后定义的覆盖,意思便是你想要的结果只能从后定义的函数中得到。
好了,言归正传,为什么javascript的函数传递可以这么随意呢,那我们就先来看看传过来的参数都存到哪里吧。实际上,在它的内部实现中,所有传过来的参数都存在一个数组中。函数接收到的始终是这个数组,而不关心这个数组包含了哪些参数。现在就好理解了,我们定义了一个函数,调用的时候参数可以随便传,你传多少它都给你加入数组中,如果不传,那么你的形参全部都是‘undefined',这并不会有什么语法错误,但是语义上就不好说了。
好了,,,,,,,,第一次写博客,小弟不才,让各位见笑了,希望这篇博文能对你有些许帮助。。。。
I LOVE YOU,GUYS!