Javascript-新函数(){…}vs{}

Javascript-新函数(){…}vs{},javascript,syntax,Javascript,Syntax,如果要创建唯一的对象,并且是唯一最好使用的实例,请执行以下操作: var obj = new function() { this.x = 200; this.y = 100; }; 或 AFAIK new的好处是您可以做以下事情: var obj = new function() { this.x = 300; this.y = x - 50 }; 这是您无法使用的: var obj = { x: 300, y: x - 50 // undefined } 这样怎么

如果要创建唯一的对象,并且是唯一最好使用的实例,请执行以下操作:

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

AFAIK new的好处是您可以做以下事情:

var obj = new function() {
  this.x = 300;
  this.y = x - 50
};
这是您无法使用的:

var obj = {
  x: 300,
  y: x - 50 // undefined
}
这样怎么样

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

使用对象文字。可以在对象外部声明
x
y
。上一个例子中的表达式会起作用。在重复的问题旁边,请看也很酷,我从来没有想到过这样的事情,所以你可以说这样更好,因为它支持早期版本的JS,不支持
new
操作符,但是它快吗?@Murplyx比什么快?你用过几千次吗?我不认为差别会很大。@Murplyx:js的任何版本都不支持
new
。但是
new
所做的事情与您所想的完全不同(这个答案中类似的对象上的
init
方法是类似的,但至少是明确的),但这并不能真正解决问题,不是吗?
var obj = {
  init: function() {
     this.x = 300;
     this.y = this.x - 50; 
     return this;
  }
}.init();