1. ホーム
  2. javascript

[解決済み] ネイティブ・オブジェクトとホスト・オブジェクトの違いは何ですか?

2022-02-08 23:14:30

質問内容

との違いがわかりません。 ネイティブオブジェクト ホストオブジェクト をJavaScriptで作成しました。後者は単にカスタムコンストラクタで作成された非プリミティブ関数オブジェクトを指すのか(例. var bird1 = new Bird(); )?

解決方法は?

どちらの用語もECMAScriptの仕様で定義されています。

<ブロッククオート

ネイティブオブジェクト

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

注 標準的なネイティブオブジェクトは本仕様で定義されている。いくつかの ネイティブオブジェクトは内蔵されています。 は、ECMAScript プログラムを実行する際に使用されます。

出典 http://es5.github.com/#x4.3.6

<ブロッククオート

ホストオブジェクト

ホスト環境から提供されるオブジェクトで ECMAScript の実行環境。

注 ネイティブでないオブジェクトは、すべてホストオブジェクトです。

出典 http://es5.github.com/#x4.3.8


いくつかの例を挙げます。

ネイティブオブジェクト。 Object (コンストラクタ)を使用します。 Date , Math , parseInt , eval のような文字列メソッド。 indexOfreplace 配列メソッド、...

ホストオブジェクト(ブラウザ環境を想定)。 window , document , location , history , XMLHttpRequest , setTimeout , getElementsByTagName , querySelectorAll , ...