【问题标题】:What is the difference between declaring a variable using "new" or without using it?使用“new”或不使用它声明变量有什么区别?
【发布时间】:2012-12-13 11:02:03
【问题描述】:

我有这段代码:

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();

test1test2 看起来一样,但我的问题是它们之间是否有什么不同?

【问题讨论】:

    标签: javascript oop function object


    【解决方案1】:

    new 适合从 构造函数 进行实例化。这基本上意味着,形成了一个 new 对象,该对象随后包含通过 constructor 中的this 引用的所有数据。

    如果不使用 newthis 将引用 全局对象 并破坏全局命名空间 (ES3),否则它将是 undefined(ES5 严格)。


    在您的特定 sn-p 中,这并不重要,因为您仍然从 Test() 返回一个 新对象。这将始终被使用并分配给test1test2

    【讨论】:

      【解决方案2】:

      嗯..第一种方法可以吗?

      您使用“新”一词是因为您声明了一个 Objectnewinstance。不是变量。

      【讨论】:

        猜你喜欢
        • 2012-07-15
        • 1970-01-01
        • 2017-11-10
        • 2019-12-29
        • 2010-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-25
        相关资源
        最近更新 更多