ホームページ  >  記事  >  ウェブフロントエンド  >  各種ブラウザ環境で提供されるJavaScriptのグローバルオブジェクト/関数インスタンスの詳細説明

各種ブラウザ環境で提供されるJavaScriptのグローバルオブジェクト/関数インスタンスの詳細説明

伊谢尔伦
伊谢尔伦オリジナル
2017-07-27 16:54:211532ブラウズ

ホスト環境によって提供されるグローバルオブジェクト/関数

ウィンドウ、アラート、setTimeout、ドキュメント、ロケーションなど。ほとんどのブラウザは書き換えを制限します

window = 55; 
alert(window);

この文はIEではエラーを引き起こし、違法コピーを促します。後でポップアップが表示されますが、ボックスは実行されません。他のブラウザでは、window=55 が存在しない場合でもウィンドウがポップアップ表示されます。

再度アラートを書き換えます

alert = 55; 
console.log(alert);

エラーが表示され、Firefox/Chrome/Safari/Opera が書き換えられ、対応するコンソールから 55 の出力が表示されます。ホスト環境によって提供されるグローバル オブジェクト/関数の書き換えをサポートしていないブラウザーもあれば、サポートできるブラウザーもあることがわかります。

グローバル変数を宣言する 2 つの方法は次のとおりです

a1 = 11; 
var a2 = 22; 
for(a in window){ 
    if(a=='a1'||a=='a2'){ 
        alert(a) 
    } 
}

上記のコードは IE で情報ボックスをポップアップ表示しません。IE では、内部コンテンツは次のとおりです

//IE 
with(host_object){//window 
    with(global_object){//Global 
        a1 = 11; 
        var a2 = 22; 
    }    
}

つまり、a1 と a2 は最初に説明したメソッドです。上記は、2 番目のホスティング環境によって提供されるウィンドウ オブジェクトのプロパティではなく、グローバル オブジェクトの JS エンジン プロパティによって提供されます。したがって、IEのウィンドウ内ではa1とa2は存在しません。 Global オブジェクトへの参照が IE で提供されている場合、次のコードにより情報ボックスがポップアップ表示される可能性があります。

for(a in Global){ 
    if(a=='a1'||a=='a2'){ 
        alert(a) 
    } 
}

Firefox/Safari/Chrome/Opera の内部はおそらく次のようになります

//Firefox/Safari/Chrome/Opera 
with(host_object){//window 
    a1 = 11; 
    var a2 = 22; 
    with(global_object){//Global 
    }    
}

つまり、a1 と a2 は、前述の 2 番目のプロパティ、ホスト環境によって提供されるグローバル オブジェクト ウィンドウです。したがって、ウィンドウ内で a1 と a2 の両方が存在すると、情報ボックスがポップアップ表示されます。

グローバル変数 window.a3 = 33 を宣言するサードパーティのメソッドを見てみましょう。これは、a3 がウィンドウのプロパティとしてウィンドウにハングされているため、すべてのブラウザーのウィンドウ内で a3 を取得できることを示しています。

以上が各種ブラウザ環境で提供されるJavaScriptのグローバルオブジェクト/関数インスタンスの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。