js 函数改写 改成带参数的函数

JavaScript06

js 函数改写 改成带参数的函数,第1张

只需要在自定义的函数中添加参数就可以了,在函数调用的时候,传递一个参数就可以了。

无参数的自定义函数:

function a(){alert (1)}   

函数调用:

a()   //弹出一个1

修改上面的函数,变成有参数的函数:

function a(n){alert (n)}

函数调用:

a(4)   //弹出一个 4

var

a=10

function

f1(a)

{

alert(a)

a

=

1//修改形参a

alert(1

===

a)

alert(1

===

arguments[0])

}

f1(a)

alert(":"+a)首先你要知道函数内部有自己的作用域,在函数内部申明的变量只在函数内部才可见然后再看你这个问题,首先你申明了a=10这么一个全局变量,然后把a作为参数传入f1这个函数内部,其实问题就在这里了如果你不把a作为参数传入f1这个函数,你可以看到全局变量的值已经被从10改变为了1,这是因为函数内部未用var申明的变量就是全局变量作用域也是全局,所以全局变量a的值会被函数f1改变那为什么把a作为参数传入f1这个函数后,a这个全局变量的值没有被改变呢?我想机制是这样的,当你把a作为参数传入函数内部时,函数会把这个参数作为函数内部的局部变量,也相当于一个申明为局部变量的过程,所以即便你在f1内部用“a

=

1”给a重新赋值,也仅仅改变的这个局部变量a的值,全局变量的值仍然是10并未被改变,这个是关键所在

查看原帖>>