2012-01-28 14 views
2

実際のタイプは[]です。本当のタイプのプロトタイプ対コンストラクタを取得しますか?

私はいつもapplyメソッドまたはコンストラクタを使用できると思っていました。

ので、私が試した:

[].constructor - >(私を示した)function Array() { [native code] }

[].constructor.constructor - >( - >function Function() { [native code] }

Object.prototype.toString.apply([])を(私を示しました)私に教えてくれた)"[object Array]"


質問

1)信じますか?

2)なぜ2行目が違うのですか?

答えて

2

1)誰が信じる?

これらのすべて。それらはすべて正しいです

2)なぜ2行目が違うのですか?

[].constructorので関数であり、関数の.constructorFunctionコンストラクタです。

最後の行は、オブジェクトの内部[[Class]]プロパティを提供しています。これは、オブジェクトを汎用toString()メソッドのコンテキストとして設定することによってのみアクセスできます。これはObject.prototypeでのみ利用可能です。

+0

「タイプ」を把握するためにどちらを使用するかを追加すると、この回答がうまくいきます。 –

+0

なぜこの 'Function'は資本Fであるのですか? –

+1

@JakubHampl:それは意見と状況の問題です。状況に応じて、第1または第3のいずれかを使用することができます。 –

関連する問題