xem xét mã:Tại sao Javascript không cho phép một chức năng xác định lại chính nó từ bên trong chính nó?
window.a = function(x){
var r = x*2;
window.a =alert; // redefines itself after first call
return r;
};
a('2 * 2 = '+a(2)); // doesn't work. it should've alerted "2 * 2 = 4"
này không làm việc một trong hai:
window.a = function(x){
alert(x);
window.a = function(x){ // redefines itself after first call
var r = x*2;
return r;
}
};
a('2 * 2 = '+a(2)); // doesn't work. it should've alerted "2 * 2 = 4"
Như không phải thực hiện điều này:
window.a = function(x){ alert(x); window.c = window.a; window.a = window.b; window.b = window.c; };
window.b = function(x){ var r = x*2; window.c = window.b; window.b = window.a; window.a = window.c; return r; };
a('2 * 2 = '+a(2)); // doesn't work.
Và về cơ bản tôi đã thử tất cả những cách có thể và không dường như thực hiện công việc. Ai đó có thể giải thích tại sao?
chỉ vì tò mò, tại sao bạn lại cố gắng làm điều này? – maialithar
Vâng, điều đầu tiên thực sự hiệu quả đối với tôi (Chrome 18) – Yoshi
Hoạt động tốt trong Chrome và IE ... –