我想了解JavaScript新关键字到底是什么意思,为什么它是必要的,当我应该使用它。试图了解新的关键字
考虑以下示例:
var x = new function(){
var self=this;
this.myFunction = function(){alert('foo ' + self.v)}
this.v='x';
};
var y = function(){
var self=this;
this.myFunction = function(){alert('foo ' + self.v)}
this.v='y';
return this;
}();
var f=function(){
var self=this;
this.myFunction = function(){alert('foo ' + self.v)}
this.v='z';
}
var z = new f();
x.myFunction();
y.myFunction();
z.myFunction();
x,y和z是所有对象。可能与公共和私人成员变量。
x和z在哪里使用new关键字构造。据我所知,新关键字只是执行该函数并返回上下文。所以我猜在上面的例子中,x和y基本上是单例,因为对原始函数的任何引用都会丢失?
除此之外,它们都完全相同吗?如果不是什么区别,我什么时候想要使用一种方法或避免另一种方法?
感谢您的任何解释。
在呼叫设定时的 “Y”,'this'将是全球范围内('window'在浏览器中做)。要更类似于“x”,第一行应该是'var self = {};'真的,它应该返回“self”而不是“this”。 – Pointy