0

私はこのプレゼンテーションhttp://channel9.msdn.com/Events/MIX/MIX11/FRM08を行っていました。Steve Anderson は、以下のような構造を持つ関数を使用しました。

function o(p) {
    return { n: p };
}

関数からオブジェクトを作成するには o 彼は使用しました

new o(123) 

この場合、新しい演算子は必要ないと思います。簡単に書くことができます。

o(123)

2つの方法の違いは何ですか?

4

1 に答える 1

2

コードはあまり意味がありません。この関数をnewキーワードなしで使用すると、単一のオブジェクトが作成されて返されます。例のようにキーワードとともに使用するとnew、2 つのオブジェクトが作成され、関数内で作成されたオブジェクトは破棄されます。

関数からオブジェクトを返す場合は、newキーワードを使用しないでください。キーワードで使用されるはずの関数はnewオブジェクトを返さず、代わりにthisキーワードを使用して、既に作成されたオブジェクトのプロパティを設定します。

function o(p) {
  this.n = p;
}
于 2012-07-20T20:53:57.347 に答える