猿问

对象字面量和new关键字实例化对象区别

var t1 = [];var t2 = [];var arr = [
  {    id: 1,
    name: 'a1'
  },
  {    id: 2,
    name: 'a2'
  },
  {    id: 3,
    name: 'a3'
  }
]function test(id, name) {  this.id = id  this.name = name  this.idAndName = id + name
}

arr.forEach((item, index) => {  // 写法1,直接添加
  t1.push({    id: item.id,    name: item.name,    idAndName: item.id + item.name
  })  // 写法2,通过new的方式添加
  t2.push(new test(item.id, item.name));
})console.log(t1, t2);

上面的两种写法哪种方式好些?有什么区别


拉莫斯之舞
浏览 1086回答 2
2回答

qq_花开花谢_0

当然是字面量方式, 简洁, 快, 关键是可以少敲很多代码

杨魅力

答案是不一定。取决于你这个数据解构会不会被大量复用到。假设这个结构是这样的我们暂时称它为obj{    a:[         {a1:"foo",a2:"bar"},         {a1:"baz",a2:"bar"},     ],    b:"hello",    c:"world",    //...     z:"too much", }如果你有多处都需要写这个那你每次写一遍,甚至是粘贴一遍都是痛苦又或者说你有一个方法 要求传入的参数一定要是类似obj那样的结构如果你用new关键字创建出来一个实例,则可以快速的使用instanceof来判断反之,你就要一个个属性的去校验过来
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答