JavaScript中值的复制和参数的传递
JavaScript中的变量分为基本类型的值和引用类型的值。
- 基本类型的值:Undefined、Null、Boolean、Number和String。
- 引用类型的值:object
复制变量值
在复制变量时复制的都是值,两者都产生一个新的变量。不同的是 基本类型复制的是实际的值,而引用类型复制的值是地址(指针)。外在表现为基本类型值的变量在操作时原始变量不发生变化;而引用类型变量在进行操作时改变的是存储的地址指向的内存,两个变量指向的地址一样,因此表现出来是都会发生变化。
传递参数
ECMAScript中所有的参数都是按值传递的,基本类型变量传递的是具体的值;引用变量传递的是内存地址(指针),这使得函数内的变化会反映在函数外部,因为操作的都是同一块内存地址。
下面一个例子可以证明对象是按值传递的:
1 | function setName(obj) { |