JavaScriptでは、任意の法的機能をオブジェクトコンストラクターとして使用できます。これには、システムに組み込まれた機能とユーザーが定義する関数の両方が含まれます。関数がコンストラクターとして実行されると、その内部のこのプロパティは関数自体を参照します。
一般的に言えば、コンストラクターは値を返しません。このポインターによって渡されたオブジェクトを初期化するだけで、何も返しません。関数に戻り値がある場合、返されたオブジェクトは新しい式の値になります。正式な観点から、新しいオペレーターを使用するかどうかにかかわらず、コンストラクターまたは通常の関数として実行される関数の唯一の違い。
上記の説明には、実際にはより正確な意味があります。これは、関数の返品値が参照タイプと値タイプです。
関数の返品値が参照型(配列、オブジェクト、または関数)のデータである場合、この関数がコンストラクターとして新しいオペレーターと構造を実行する場合、操作の結果はその返品値に置き換えられます今回、コンストラクター本体はこの値に失われ、返されたオブジェクトに置き換えられます。例えば:
コードコピーは次のとおりです。
function test()
{
this.a = 10;
return function()
{
返品1;
}
}
アラートM = new Test();
var n = test();
アラート(m); //返された後に閉鎖を返します
アラート(n); //返された後に閉鎖を返します
実行結果mとnの値は同じであり、両方ともテスト関数によって返される閉鎖であり、これによって参照されるオブジェクトとこの結果の結果はすべて破棄されます。
関数の返品値が値タイプである場合、コンストラクターとして新しい演算子を使用して機能が構築を実行する場合、その返品値は破棄されます。新しい式の結果は、これによって参照されるオブジェクトです。
コードコピーは次のとおりです。
function test()
{
this.a = 10;
返品1;
}
アラートM = new Test();
var n = test();
アラート(M)// [オブジェクト]を返す
アラート(n)//戻る1。