4

ECMA-262によると、ネイティブオブジェクト

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

組み込みオブジェクトは次のように定義されます

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

メモ付き

この仕様では、標準の組み込みオブジェクトが定義されており、ECMAScript実装で他のオブジェクトを指定および定義できますすべての組み込みオブジェクトはネイティブオブジェクトです。

ネイティブオブジェクトがホスト環境ではなくECMA-262仕様によって完全に定義されており、ECMAScript実装が新しい組み込みオブジェクトを指定および定義する場合、これらの新しい組み込みオブジェクトがネイティブオブジェクトでない場合、どのようにしてネイティブオブジェクトになりますか。 ECMA-262仕様で完全に定義されていますか?

私は何が欠けていますか?

4

3 に答える 3

6

ECMAScript実装が付属しているため、「ネイティブ」です。一般に、ECMAScript実装と連携して動作する他のいくつかのインターフェイスで構成されるアプリケーションのホスト環境。例えば、

  • Webブラウザ— ECMAScript実装、DOMインターフェイス、レンダリングエンジン、UIなどで構成されるホスト環境。
  • Windows Script Host — ECMAScript実装、VBScript実装などで構成されるホスト環境。
  • Node.js — ECMAScript実装(V8)、HTTPインターフェースなどで構成されるホスト環境。

「組み込み」オブジェクトはまたはから継承する必要がありますが、ホストオブジェクト(ホスト環境によって提供されるオブジェクトですが、実行の開始時に必ずしも存在する必要はありません)は必須ではありませんが、必須である場合があります(場合によってはそうなります)。ObjectFunction

ECMA-262で定義されたネイティブオブジェクトの例

  • Object()、、Array()_Date()
  • Math、、JSONグローバルオブジェクト。

ECMA-262で定義されていないネイティブの組み込みオブジェクトの例

ホストオブジェクトの例

  • DOMオブジェクト、documentおよびwindow
  • console
于 2011-11-08T15:40:18.990 に答える
2

ネイティブオブジェクトのセマンティクスは、ECMA-262によって完全に定義されています。オブジェクト自体はそうではないかもしれません。

したがって、オブジェクトには3つのレベルがあります。

  1. 標準の組み込みオブジェクト:ECMA-262で定義され、ECMA-262のセマンティクスに従います。例:Object
  2. その他の組み込みオブジェクト:ECMA-262では定義されていませんが、ECMA-262のセマンティクスに従います。例:setTimeout
  3. ホストオブジェクト:ECMA-262セマンティクスに従わないでください。それらはあらゆる種類の奇妙な振る舞いをする可能性があり、EMCA-262組み込みオブジェクトと奇妙で予期しない方法で相互作用する可能性があります(たとえば、さまざまな内部プロパティについて嘘をついているなど)。例:NodeList
于 2011-11-08T15:29:10.740 に答える
0

の定義は、 Likeオブジェクトnative objectの相対的な用語であり、Ecma262がブラウザに実装方法を指示するために文書化されていないホストオブジェクトです。 また、Ecma262は、機能の言語を指定するための単なるプロジェクトです。ECMAScriptの実装は、実際にはブラウザの仕事です。つまり、の仕様に準拠した実装であり、まったく同じようには機能しませんが、それを言うことができます。host object
window.console
object typebuilt-in object

于 2011-11-08T15:42:40.700 に答える