2

この質問に答えるには、ネイティブ オブジェクトと組み込みオブジェクトの定義が必要だと思います。ECMAScript 仕様では、これらを次のように定義しています。

4.3.6 ネイティブ オブジェクト

ECMAScript プログラムの実行開始時に存在する、ホスト環境に依存しない ECMAScript 実装内のオブジェクト。

注 標準のネイティブ組み込みオブジェクトは、この仕様で定義されています。一部のネイティブ オブジェクトは組み込みです。その他は、ECMAScript プログラムの実行中に構築される可能性があります。

4.3.7 組み込みオブジェクト

ECMAScript プログラムの実行開始時に存在する、ホスト環境に依存しない ECMAScript 実装によって提供されるオブジェクト

注: 標準の組み込みオブジェクトはこの仕様で定義されており、ECMAScript 実装は他のオブジェクトを指定および定義できます。すべての組み込みオブジェクトはネイティブ オブジェクトです。組み込みコンストラクターは、コンストラクターでもある組み込みオブジェクトです。

このあたりの解説が楽しみです。

4

2 に答える 2

4

ES5が示すものは次のとおりです。

4.3.6 ネイティブ オブジェクト # Ⓣ ホスト環境ではなく、この仕様によって完全にセマンティクスが定義されている ECMAScript 実装のオブジェクト。

注 標準のネイティブ オブジェクトは、この仕様で定義されています。一部のネイティブ オブジェクトは組み込みです。他のものは、ECMAScript プログラムの実行中に構築される可能性があります。

4.3.7 組み込みオブジェクト # Ⓣ ECMAScript プログラムの実行開始時に存在する、ホスト環境に依存しない ECMAScript 実装によって提供されるオブジェクト。

注: 標準の組み込みオブジェクトはこの仕様で定義されており、ECMAScript 実装は他のオブジェクトを指定および定義できます。すべての組み込みオブジェクトはネイティブ オブジェクトです。組み込みコンストラクターは、コンストラクターでもある組み込みオブジェクトです。

ご覧のとおり、あなたが示したものとは異なります。

組み込みオブジェクトは、ECMAScript 準拠のエンジンによって使用可能になるネイティブ オブジェクトです。例えば:

  • 物体
  • 配列
  • 未定義
  • ブール値

ネイティブ オブジェクトは、たとえば次のとおりです。

var obj = {};

または、前に示したリスト。組み込みオブジェクトはネイティブです。

また、お見せしませんでしたが、ホストオブジェクトは環境に依存するオブジェクトです。たとえば、ブラウザでは、ホスト オブジェクトはwindow. documentまたはのような他のホスト オブジェクトがありXMLHttpRequestます。

于 2012-07-24T14:28:11.123 に答える
-3

ネイティブ オブジェクト - ECMAScript 自体に実装されていないことを意味します。組み込みオブジェクト - エンジンによって提供されるオブジェクト。数学、文字列などを考えてください。

于 2012-07-24T14:14:55.703 に答える