|
Я нашел скрытый бонус JavaScript
for(i=0;i<3;i++){
window.setTimeout(function(i){
alert("test"+i);
},1000,i);
}
т.е. параметр i обязателен! |
Аналогично
window.addEventListener("load",function(i){
alert("test"+i);
}(i),false);
|
Цитата:
test = true,
function(x){
var test = x;
eval.call(window, "alert(test)");
}(false); // скрытый бонус)))
|
Только этот бонус не работает, как цикл находиться внутри функции
|
Цитата:
|
Я уже решил проблему!
|
Цитата:
test = true,
function(x) {
var test = x;
alert(window.test);
}(0);
:) |
monolithed, мне просто вспомнилось, как когда-то мне надо было эвалить ( я был молод, горяч и любил эвалить:D ) скрипты. Но так как эвал происходит в текущем контексте, переменные оказывались не там, где надо:
(function(){
eval("var test = true;");
}());
alert("test" in window);
Тогда я решил проблему так:
(function(){
eval.call(window, 'var test = true;');
}());
alert("test" in window);
А потом я неожиданно узнал, что в ie так не получится. Тогда мне помог execScript, но с тех пор я понял: нашел "скрытый бонус", первым делом опробуй его в ie!:) |
|
Цитата:
Цитата:
setTimeout(function(){
alert( arguments.length );
}, 1, 1, 2, 3);
|
| Часовой пояс GMT +3, время: 01:33. |
|