javascript - What's the difference between `f()` and `new f()`? -


possible duplicate:
what 'new' keyword in javascript?
creating objects js closure: should use “new” keyword?

see code:

function friend(name) {     return { name: name }; }  var f1 = friend('aa'); var f2 = new friend('aa');  alert(f1.name); // -> 'aa' alert(f2.name); // -> 'aa' 

what's difference between f1 , f2? ​

the new in case isn't usefull. need use new keyword when function uses 'this' keyword.

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