对象的变与不变,基本类型

前端之家收集整理的这篇文章主要介绍了对象的变与不变,基本类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
   function Test() {
        this.options = { a: 1,b: 2 }
        var { options } = this
        options.a = 3
        options.b = 4
    var { a,b } = options
    a = 5;
    b = 6

    console.log(options,a,b)

    this.sec = { c: 2,d: {} }
    var { sec } = this
    var { c,d } = sec
    c.d = 3
    c.e = 4

    d.d = 3
    d.e = 4


    console.log(sec,c,c.d,d)


   this.third = { e: {},f:1}
    var { third } = this
    var { e,f} = third
    e = 2
    f={}
    f.a=1
    console.log(third,e,f)
}
var test = new Test;

结果:

    {a: 3,b: 4},5,6

{c: 2,d: {d: 3,e: 4}},2,undefined,{d: 3,e: 4}

{e: {},f: 1},{a: 1}

将对象test的属性a赋值给新的变量b时:
1.如果赋值后新的变量b是对象(即a是一个对象), 那么 b的任一(任何)属性c改变时,都会引起a的改变。 但是将b重新赋值(无论是基本类型或对象), b发生改变,而a 不会变。
2.如果赋值后新的变量b是基本类型(即a是基本类型), 那么b无论发生任何改变,a都不会变。 如果b直接加属性c, 那结果无效(b.c===undefined) 。2.将b赋值成对象,再加属性c,那么b将会变化,并获得c属性

这里要分清基本类型对象的关系。 对于编写插件很有帮助。

猜你在找的程序笔记相关文章