2

Douglas Crockfordが言っているように、JavaScript でクロージャーを使用してプライベート プロパティを設定することができ、それらは安全なデータを処理するのに非常に便利です。

これで、コードの管理と構造化に役立つカプセル化の概念を理解できました。プライベート変数もパフォーマンスに役立ちます。たとえば、反復アクセスのために DOM 要素、プロパティ、およびグローバル変数をキャッシュできます。

問題は、クロージャーやプライベート変数が機密データの処理にどの程度役立つのかということです。

4

1 に答える 1

2

コードの特定のコンポーネントのデータを残りのコードに対して保護できます。または、ページに含めた可能性のあるサードパーティのスクリプト. そのため、機密性の高い中間データが XSS 攻撃によって悪用されるのを防ぐことができます。

DOM (入力要素など) に存在するすべてのデータは、ページ内の任意のスクリプトからアクセスできます。ただし、javascript の一部の変数はクロージャー スコープ内で閉じることができ、他のスクリプトからは実質的にアクセスできなくなります。


x = {}
(function(){
    var a;

    x.fn = function(arg){
        a = arg;  // Can access and modify a;
    }

})();

function fn2(){
    a = 12; // This does not change the a above;
}
于 2012-10-27T17:15:56.167 に答える