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

伊谢尔伦
リリース: 2017-07-27 16:54:21
オリジナル
1481 人が閲覧しました

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

ウィンドウ、アラート、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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!