-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JS 函数中参数传递的方式 #5
Labels
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
JS 函数中参数传递的方式
函数参数的传递方式为值传递,而这里又分原始类型和引用类型
原始类型
上述代码中,全局变量
num
是一个原始类型的值,传入到函数中为值传递。因此在函数内部num
为全局变量的复制(拷贝),复制后两个变量完全独立,无论怎么修改都不会影响到原始值(全局变量num
)。引用类型
上述代码中,全局变量
obj
是一个引用类型的值,传入到函数中的是原始值的地址,因此在函数中修改了obj
,原始值也会改变。特别注意: 如果函数内部修改的不是参数对象的某个属性,而是替换掉整个参数,这时不会影响到原始值。
上述代码中,在函数
change
中,参数对象obj
被整体替换成另一个值,此时不会影响到原始值。因为这个时候直接修改了obj
的指针的值(在堆中开辟了一个新的对象),然后把这个新的地址赋给obj
,并不会影响到全局变量outObj
的指向。参考:
The text was updated successfully, but these errors were encountered: