function foo() {
return {a:9};
}
var bar = foo();
bar.a //returns 9
また
function foo() {
return {a:9};
}
var bar = new foo();
bar.a // returns 9
私が知る限り、new はオブジェクト リテラル表記では使用されませんが、どうして new がそれで機能するのでしょうか? また、prototype は new object でアクセスできるのに、オブジェクト リテラル表記ではアクセスできないのはなぜですか?
編集:
この問題/質問に出くわした他の誰かがそれを理解するのに役立つかもしれません:
function foo() {
this.a = "LOL";
return "WTF";
};
var bar = new foo(); // bar = [Object object]
var c = foo(); // c = "WTF"
window.a // "LOL"
受け入れられた回答も読んでください。