ste*_*eve 17 javascript scope anonymous-function
说我有这个匿名功能:
(function(window){
var private = 'private msg';
function sayit() {
alert(private) // works
}
document.body.onclick = sayit; // works
})(window);
// private shouldn't be accessible here
Run Code Online (Sandbox Code Playgroud)
这是JavaScript应该如何表现?
也就是说,无法private
从该匿名函数之外的任何地方访问?
如果是这样,是否有可能private
从外部找到某种黑客攻击,让代码保持原样?
Fai*_*aiz 13
是的,这就是Javascript让你拥有'私有'变量(隐藏在函数范围内)的方式.
不,没有黑客可以访问变量,例如private
没有重写代码.
var
在函数内定义的变量只能从该函数中访问.
好.我知道了.
(function(window){
var alert_original = window.alert;
window.alert = function(data) {
window.extracted = data;
alert_original(data);
};
})(window);
(function(window){
var private = 'private msg';
function sayit() {
alert(private) // works
}
document.body.onclick = sayit; // works
})(window);
Run Code Online (Sandbox Code Playgroud)
单击body后,您可以从中获取"private msg" extracted
归档时间: |
|
查看次数: |
24103 次 |
最近记录: |