function F1() { return {}; }
function F2() { }
[F1(), new F2()]; // [Object, F2]
F1の動作には、新しいコマンド - [F1、F2]を使用しないでF2に似ています。「Object」の代わりにコンストラクタ名を表示する方法は?
function F1() { return {}; }
function F2() { }
[F1(), new F2()]; // [Object, F2]
F1の動作には、新しいコマンド - [F1、F2]を使用しないでF2に似ています。「Object」の代わりにコンストラクタ名を表示する方法は?
をしたい場合は、信頼できるブラウザ&コンソールバージョンの説明です。
これは、あなたがあなたの同じコードからIE10コンソール上で、例えば、買ってあげるものです:
function F1() { return {}; };
function F2() { };
[F1(), new F2()];
>> [object Object],[object Object] {
0 : [object Object],
1 : [object Object]
}
しかし、どのようにChromeで同じ結果を得る:[F1、F2] '新しい'コマンドなし? – j0101
ブラウザコンソールのオブジェクト項目の説明に影響を与えることはできません。 F1とF2は異なるオブジェクトなので、あなたの要求は無意味です。 –
JavaScriptでコンストラクタは単なるオブジェクトであり、それらはnew
キーワードで初期化することができます。したがって、F1()
は単なる関数呼び出しであり、new F2()
は新しいオブジェクトを作成する方法です。あなたは見ることができます
:それはオブジェクトとして戻り値を持っているので
function F1() { return {}; } // <----not a constructor method
function F2() { } // <---------------This can be a constructor method
F1()
はここでコンストラクタメソッドではありません。戻り値を持つコンストラクタを持つことはできません。
F2()
は戻り値がないため、コンストラクタとして使用できます。
なぜ 'F1'はコンストラクタではありませんか? – nils
あなたは、F1を呼んで、戻りオブジェクト{}
であることは本当だ!!! ..しかし、uはI need to the behavior of F1 was similar to F2.
function F1() { return this;} //or {}
function F2() { return this;} //or {}
[new F1(), new F2()]; // [F1,F2]
あなたが「類似」とはどういう意味ですか?あなたは '[F1、F2]'を表示してもらいたいですか? – devnull69