正如Douglas Crockford所说,我们可以在 JavaScript 中使用闭包来拥有私有属性,并且它们对于处理安全数据非常方便。
现在我了解了封装的概念,因为它可以帮助我们管理和构建代码。甚至私有变量对性能也很有用,例如:您可以缓存 DOM 元素、属性和全局变量以进行迭代访问。
所以问题是:闭包或私有变量究竟如何帮助我们处理敏感数据?
正如Douglas Crockford所说,我们可以在 JavaScript 中使用闭包来拥有私有属性,并且它们对于处理安全数据非常方便。
现在我了解了封装的概念,因为它可以帮助我们管理和构建代码。甚至私有变量对性能也很有用,例如:您可以缓存 DOM 元素、属性和全局变量以进行迭代访问。
所以问题是:闭包或私有变量究竟如何帮助我们处理敏感数据?
您可以保护代码中某个组件的数据免受其余代码的影响。或者也许您可能已包含在您的页面中的任何第三方脚本。因此,您可以保护任何敏感的中间数据不被 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;
}