2012-01-18 1 views
0

javascriptのすべてのオブジェクトのスーパープロトタイプ "オブジェクト"はありますか?何がそのオブジェクト(首都の最初の文字)はJavaScriptです。 javascript Objectでは、Objectクラスのようなすべてのオブジェクトのプロトタイプは、Javaのすべてのクラスのスーパークラスです。javascriptにはすべてのオブジェクトのスーパープロトタイプ "Object"がありますか?何がそのオブジェクト(資本金の最初の文字)です

+1

これはすぐに答えが続いたと思われましたか? – Groo

答えて

0

コンソールにObject.prototypeと入力してください。あなたは以下を参照してください、すべてのクラスがJavaでオブジェクトから延びると同じように、JavaScriptですべての機能がObjectから延びる仮説を検証するために

enter image description here

のように表示されます。

enter image description here

だから答えはイエスです。

しかし、javascriptではprototypal継承を使用していますが、javascriptではすべてのオブジェクトがJavaの場合と同様にプロトタイプでObjectのメソッドを取得しますが、他の類似点は保持されません。

0

はい、Objectは、プロトタイプ階層の最上位のオブジェクトです。しかし、Object.prototypeを汚染することはお勧めしません。そのようなプロパティは、たとえばfor-inループに表示されるためです(あなたが列挙できないようにしていない場合)。また、バージョン8までのIEでは、ホストオブジェクトはObject:document.body instanceof Object === falseから継承しないことに注意してください。

1

私はあなたが何かをObject.prototypeに置くと、すべてがでアクセス可能であることを意味すると思います。それらはすべてObjectに拡張されています。簡単な答え、はい。

Object.prototypeに何かを配置すると、XMLHttpRequestのインスタンスを作成すると、設定したものにアクセスできるようになります。このように:

Object.prototype.foo = 'bar'; 
var req = new XMLHttpRequest(); 
console.log(req.foo); // bar 
+1

いいえ、すべてではありません。 'Object.prototype'は[[Prototype]]がnullのオブジェクトです。同様に、ES5では、 'Object.create(null)'は類似のオブジェクト(すなわち、[Prototype]]がnullであるオブジェクト)を作成します。 – gsnedders

関連する問題