2016-12-16 4 views
4

私はオブジェクトを作成し、私はその後、私は新しいオブジェクトを作成し、OBJオブジェクトを継承するとき、それは

enter image description here

今Objectから継承されていることを知ってもらうことの_proto__プロパティをナビゲートするときこのような継承構造を得る enter image description here

私は、オブジェクトobj1がオブジェクトobjから継承され、オブジェクトobjがグローバルオブジェクトであるオブジェクトObjectから継承されていることを理解できます。

今、私の質問は、私は私のコンソールにデバッグするとき、私は、オブジェクトとしてOBJとOBJ1の両方を取得し、ですが、私はangularJSの$の範囲をデバッグするとき、私はこの

enter image description here

のような何かを得るのはなぜです$ scopeはObjectの代わりにbを返します。これは上記の2つの画像すべてで見ることができますが、angularJSではそれほど違いはありません。

UPDATE 1

私はJavaScriptでコンストラクタのオブジェクトを作るとき

enter image description here

しかし、の場合は、以下の画像のように、私はコンストラクタで関数名を取得します$ scope私はコンストラクタ関数を見ません、それはなぜですか?私が何かを見逃している、私に教えてください

+0

@ Maximus私の質問の答えを知っていますか –

答えて

2

これは、あなたがミニアプリケーションをデバッグしているからです。

$scopeは、internal Scope or ChildScope classのインスタンスです。

縮小された角度バンドルでは、クラスはbのように呼び出されます。

+0

私のupdaを参照してくださいあなたに感謝します。 –

+1

プロトタイプチェーン上にあるので、コンストラクタはありません。 '$ scope.constructor'をロギングするときに表示されます。 – estus

1

コンソールでオブジェクトを検査する場合、それは例えば、このオブジェクトのクラス名によって参照されていますあなたの場合は

function Scope() {} 
var s = new Scope(); 

enter image description here

を、代わりにfunction Scope() {}の、縮小さバージョンのコードでこのように見えるfunction b() {}new b()が代わりに使用されますnew Scope()

+0

更新された質問をご覧ください、ありがとう –

関連する問題