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 回答