为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

拉莫斯之舞 2018-08-03 20:06:39
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);上面的两种写法哪种方式好些?有什么区别
查看完整描述

2 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

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

查看完整回答
反对 回复 2018-08-05
?
杨魅力

TA贡献1811条经验 获得超6个赞

答案是不一定。
取决于你这个数据解构会不会被大量复用到。
假设这个结构是这样的
我们暂时称它为obj

{    a:[
        {a1:"foo",a2:"bar"},
        {a1:"baz",a2:"bar"},
    ],    b:"hello",    c:"world",    //...
    z:"too much",
}

如果你有多处都需要写这个
那你每次写一遍,甚至是粘贴一遍都是痛苦

又或者说
你有一个方法 要求传入的参数一定要是类似obj那样的结构
如果你用new关键字创建出来一个实例,则可以快速的使用instanceof来判断
反之,你就要一个个属性的去校验过来


查看完整回答
反对 回复 2018-08-05
  • 2 回答
  • 0 关注
  • 1085 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信