JavaScript - 引用数据类型

117 阅读1分钟

数组类型:

用"="来赋值,不会影响数组a的值,a和b互不影响

let a = [1, 2, 3]
function test(b) {
    b = [20]
    console.log(b);     //[20]
}
test(a)
console.log(a);     //[1, 2, 3]

用"."来赋值,会影响数组a的值,此时a和b用一个地址,a的值等于b的值

let a = [1, 2, 3]
function test(b) {
    b.push(20)
    console.log(b);     //[1, 2, 3, 20]
}
test(a)
console.log(a);     //[1, 2, 3, 20]

对象类型:

用"="来赋值,不会影响对象a的值,a和b互不影响

let a = { name: 'simba' }
let b = a
b = { name: 'ace' }
console.log(a);     //{name: "simba"}
console.log(b);     //{name: "ace"}

用"."来赋值,会影响对象a的值,此时a和b用一个地址,对象a的值等于对象b的值

let a = { name: 'simba' }
let b = a
b.name = "ace"
console.log(a);     //{name: "ace"}
console.log(b);     //{name: "ace"}