【问题标题】:Javascript - new function() {...} vs {} [duplicate]Javascript - new function() {...} vs {} [重复]
【发布时间】:2014-10-29 19:11:54
【问题描述】:

如果您想创建一个唯一且是唯一实例的对象,最好使用:

var obj = new function() {
  this.x = 200;
  this.y = 100;
};

var obj = {
  x: 200,
  y: 100
};

AFAIK new 的好处是您可以执行以下操作:

var obj = new function() {
  this.x = 300;
  this.y = x - 50
};

你不能用:

var obj = {
  x: 300,
  y: x - 50 // undefined
}

???

【问题讨论】:

标签: javascript syntax


【解决方案1】:

这样怎么样?

var obj = {
  init: function() {
     this.x = 300;
     this.y = this.x - 50; 
     return this;
  }
}.init();

【讨论】:

  • 酷,我从来没有想过这样的事情,所以你可以说它更好,因为它支持不支持new运算符的早期版本的JS,但是它更快吗?跨度>
  • @Murplyx 比什么更快?你使用它数千次吗?我认为差异不会很大。
  • @Murplyx:没有不支持new的js版本。但是new 所做的事情与您想象的完全不同(此答案中对象上的init 方法类似,但至少是明确的)
  • 但这并不能真正解决问题,是吗?
猜你喜欢
  • 2014-02-28
  • 2017-06-08
  • 2011-04-01
  • 2015-11-15
  • 2021-01-30
  • 1970-01-01
  • 1970-01-01
  • 2018-05-24
  • 2011-02-14
相关资源
最近更新 更多