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

前端之家收集整理的这篇文章主要介绍了对象的变与不变,基本类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. function Test() {
  2. this.options = { a: 1,b: 2 }
  3. var { options } = this
  4. options.a = 3
  5. options.b = 4
  6.     var { a,b } = options
  7.     a = 5;
  8.     b = 6
  9.     console.log(options,a,b)
  10.     this.sec = { c: 2,d: {} }
  11.     var { sec } = this
  12.     var { c,d } = sec
  13.     c.d = 3
  14.     c.e = 4
  15.     d.d = 3
  16.     d.e = 4
  17.     console.log(sec,c,c.d,d)
  18.    this.third = { e: {},f:1}
  19.     var { third } = this
  20.     var { e,f} = third
  21.     e = 2
  22.     f={}
  23.     f.a=1
  24.     console.log(third,e,f)
  25. }
  26. var test = new Test;

结果:

  1. {a: 3,b: 4},5,6
  2. {c: 2,d: {d: 3,e: 4}},2,undefined,{d: 3,e: 4}

  3. {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属性

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

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