`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'
f1
和 f2
有什么区别?
【问题讨论】:
一个前面有“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) 有啥区别吗?
执行多个查询时,“psql -c”和“psql -f”有啥区别?