JavaScript 的传值与传址
复制类型与引用类型
复制: 数字,布尔值,字符串(字符串无法改变,无法确定,行为类似于复制类型)
引用: 数组,对象,函数等
1 | // 复制类型 |
复制类型和引用类型在函数参数中的应用
传值的传递,传给函数的是数值的一个复制,函数中对其的修改对外部不可见.
1 | var a = 1; |
传址的传递,传递给函数的是数值的引用.函数对其属性的内部修改外部可见,但函数内部新引用覆盖旧引用时,外部不可见,这也就是闭包的私有变量特性
1 | var a = [1,2,3],b=[4,5] |
但如果函数并未传递参数,根据作用域链向上查找,可以修改函数外部变量.
1 | var a = [1,2,3],b=[4,5] |