Javascript 使用";声明变量之间有什么区别;新";还是不用它?
我有一段代码:Javascript 使用";声明变量之间有什么区别;新";还是不用它?,javascript,oop,function,object,Javascript,Oop,Function,Object,我有一段代码: function Test() { var i=0; return { foo : function() { console.log(++i); }, bar : function(a) { i=i+a;console.log(i)} } } var test1 = Test(); var test2 = new Test(); test1和test2看起来一样,但我的问题是它们之间是否有什么不同?嗯。。你能用第一种方法吗 之所以使用术语“new”
function Test() {
var i=0;
return {
foo : function() { console.log(++i); },
bar : function(a) { i=i+a;console.log(i)}
}
}
var test1 = Test();
var test2 = new Test();
test1
和test2
看起来一样,但我的问题是它们之间是否有什么不同?嗯。。你能用第一种方法吗
之所以使用术语“new”,是因为您正在声明
对象的新实例。不是一个变量 嗯。。你能用第一种方法吗
之所以使用术语“new”,是因为您正在声明对象的新实例。不是一个变量 new
适用于从构造函数实例化。这基本上意味着,将形成一个新对象,其中包含构造函数中通过this
引用的所有数据
如果不使用new
,此
将引用全局对象并关闭全局命名空间(ES3),或者它将是未定义的
(ES5)
在这里的特定代码片段中,这并不重要,因为您仍然从Test()
返回一个新对象。它将始终被使用并分配给test1
和test2
new
对于从构造函数实例化非常有用。这基本上意味着,将形成一个新对象,其中包含构造函数中通过this
引用的所有数据
如果不使用new
,此
将引用全局对象并关闭全局命名空间(ES3),或者它将是未定义的
(ES5)
在这里的特定代码片段中,这并不重要,因为您仍然从Test()
返回一个新对象。将始终使用并分配给test1
和test2