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中几乎所有的东西都是一个对象。我认为与另一个重复的问题相比,这是一个非常有说服力的问题。有点接近答案,但我想仍然需要一个彻底的解释。