【问题标题】:What's the difference between `f()` and `new f()`? [duplicate]`f()` 和 `new f()` 有什么区别? [复制]
【发布时间】:2012-04-14 16:48:37
【问题描述】:

可能重复:
What is the 'new' keyword in JavaScript?
creating objects from JS closure: should i use the “new” keyword?

查看此代码:

function friend(name) {
    return { name: name };
}

var f1 = friend('aa');
var f2 = new friend('aa');

alert(f1.name); // -> 'aa'
alert(f2.name); // -> 'aa'

f1f2 有什么区别? ​

【问题讨论】:

  • 一个前面有“new”这个词 :-) 一个只是常规函数,另一个是某事物的新实例,通常是对象,几乎所有东西都是对象在 JS 中。
  • 与其他副本相比,我认为这是一个非常有说服力的问题。

标签: javascript function


【解决方案1】:

在你的情况下新的没有用。 当函数使用'this'关键字时,只需要使用new关键字即可。

function f(){
    this.a;
}
// new is required.
var x = new f();

function f(){
    return {
        a:1
    }
}
// new is not required.
var y = f();

【讨论】:

  • 有点接近回答,但我想仍然需要一个彻底的解释。
猜你喜欢
  • 2013-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-29
  • 1970-01-01
  • 2013-02-09
相关资源
最近更新 更多