`f()` 和 `new f()` 有啥区别? [复制]

Posted

技术标签:

【中文标题】`f()` 和 `new f()` 有啥区别? [复制]【英文标题】: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 中。 与其他副本相比,我认为这是一个非常有说服力的问题。 【参考方案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();

【讨论】:

有点接近回答,但我想仍然需要一个彻底的解释。

以上是关于`f()` 和 `new f()` 有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

f(const string &) 和 f(const string) 有啥区别吗?

f:ajax 和 a4j:ajax 之间有啥区别吗?

执行多个查询时,“psql -c”和“psql -f”有啥区别?

C++ Mfc中 format(%d,str)和format(%f,str)有啥区别?

plot和ezplot有啥区别?

凌美狩猎者EF和F笔尖有啥区别?