notes icon indicating copy to clipboard operation
notes copied to clipboard

JS 传参机制

Open lanlin opened this issue 8 years ago • 0 comments

JS 传参是传值 or 传引用?

JS 函数接受参数之前, 会先在函数作用域内创建一个局部变量, 并把传入的参数赋予创建的局部变量。

By Value (直接传基本类型的值)

如果是参数是数字、字符串、布尔值等类型, 就会重新开辟一块栈内存存储传入变量的值, 并把新创建的变量指向此栈内存地址。 因此对此变量的修改并不会影响到外部变量的值。

By Reference-Copy (传引用的地址)

如果参数是对象、函数、数组等类型, 则仅仅是对变量进行引用复制操作, 只是把新创建的局部变量指向外部变量的堆内存地址。 因此对局部变量的修改就相当于对外部变量的修改。

lanlin avatar Jun 15 '17 11:06 lanlin