ローカルオブジェクト:のホスト環境とは独立してECMAScriptの実装オブジェクトを提供します。最も一般的なローカルオブジェクトがあります:オブジェクト、関数、配列、文字列、ブール、ナンバー、日付、正規表現、エラーとそうで。
組み込みオブジェクト:組み込みのあなたは、グローバルと数学のオブジェクトの主なオブジェクトをインスタンス化する必要はありませんオブジェクト。
それは実際には存在しないため、ほとんどの特別なECMAScriptのは、オブジェクトであるが、彼らはECMAScriptの中で、独立した機能が存在しない、すべての機能は、オブジェクトのメソッドである必要があり、明らかであろう:グローバルオブジェクト。parseFloatは()、のparseInt()、エスケープ()、アンエスケープ()、isFiniteの方()、のisNaN()、のeval()、encodeURI()とencodeURIComponentで()と同様に、それは実際には、彼らは、機能を探しますそれはグローバルオブジェクトです。
ウィンドウオブジェクト:ECMAScriptのは、どのように直接グローバルオブジェクトへのアクセスを示すものではありませんが、ブラウザがグローバルオブジェクトウィンドウオブジェクトの一部として実装されます。そのため、グローバル宣言スペースでのすべての変数と関数は、それがウィンドウオブジェクトのプロパティとなっています。
比較グローバルウィンドウオブジェクトをオブジェクトと
グローバルオブジェクトは、どのような環境で存在しています。
関数とグローバル関数ウィンドウオブジェクトは同じではありません。グローバル関数は、任意の組み込みオブジェクトに属していません。
ノー継承と、デフォルトのブラウザはグローバルオブジェクトに配置されているオブジェクトの使用を提供すると考えることができ、ウィンドウは、オブジェクト、このグローバルオブジェクトで発生します。実際には、ブラウザの内部実装は、真のグローバルオブジェクト、代替グローバル・オブジェクトとしてウィンドウオブジェクトを隠します。すべての操作(間接作用)のためのグローバルオブジェクトは、ウィンドウは、オブジェクトにマッピングされ、またその逆れます。このようなウィンドウオブジェクトは、代替のグローバルオブジェクトとなっています。ウィンドウオブジェクトは、グローバルオブジェクトの属性と同時にあります。このように、真のグローバルオブジェクトは、氷の上に置いています。
実用的なアプリケーション:
1.暗号化のJS暗号化したい場合、あなたは特別な変数でウィンドウに登録することができ、グローバルオブジェクトをオブジェクト。例えば:
ウィンドウ[ '_ AB'] =ウィンドウ[ 'のparseInt' ] VAR A = _ab( '234' )。 console.log( '打印')。
シンプルなJS暗号化のこの実現。このように一般的に使用される暗号化を使用することができる:日付、数学、のparseInt、parseFloatは、アレイなど
2.暗号化のjsオブジェクトのメソッド。例:getTimeメソッド
ウィンドウ[ '_ DF'] =ウィンドウ[ '日' ] ウィンドウ[ "_w3"] = 'getTime' のvar B = 新しい_df() VAR C = B [_w3]() にconsole.log(C、 '打印')
または閉鎖を利用することができます
ウィンドウ[ '_ DF'] =ウィンドウ[ '日' ] ウィンドウ[ "_w3"] = _vP( 'getTime' ) 関数_vP(_BT){ 戻り 関数(){ 戻り_BT } } のvar B = 新しい_df() VaRの C = B [_w3()]() にconsole.log(C、 '打印')