Javascript 什么';“f()”和“new f()”之间的区别是什么?

Javascript 什么';“f()”和“new f()”之间的区别是什么?,javascript,function,Javascript,Function,可能重复: 请参阅此代码: 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之间有什么区别? ​ 在你的情况下,新的是没有用的。 当函数使用“this”关键字时,您只需要使用new关键字 functio

可能重复:

请参阅此代码:

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
之间有什么区别?

在你的情况下,新的是没有用的。 当函数使用“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();

一个前面有“new”一词:-)一个只是一个常规函数,另一个是某个事物的新实例,通常是一个对象,在JS中几乎所有的东西都是一个对象。我认为与另一个重复的问题相比,这是一个非常有说服力的问题。有点接近答案,但我想仍然需要一个彻底的解释。