проблема с setTimeout
Всем привет.
Вот такой пример:
<html>
<head>
<title>
Java Script
</title>
<script>
function myclass(vvar) {
this.a = vvar
this.b = 10
}
with (myclass) {
prototype.away = function() {
alert("away" + " " + this.a + " " + this.b)
}
prototype.change = function() {
var self = this
t = setTimeout(self.away, 100)
}
}
var cl = new myclass(10);
</script>
</head>
<body>
<button name="next" onclick="cl.change()">
next
</button>
</body>
</html>
Ожидалось после нажатия кнопки увидеть: "away 10 10" На самом деле вывелось: "away undefined undefined" Причина более менее понятна - типа когда вызывается "away" объекта уже нет. Но вот как исправить не понимаю ибо в программировании - новичёк. Заранее благодарен за помощь. |
|
<script type="text/javascript">
window.onload = function(){
var i = 0, j = 0;
(function(){
var div = document.getElementsByTagName('div'), input = document.getElementsByTagName('input')[0];
div[0].innerHTML = i++;
input.onclick = function(){
j = i;
div[1].innerHTML = j;
};
window.setTimeout(arguments.callee, 10);
})();
};
</script>
<div></div>
<div></div>
<input type="button" value="change" />
|
Спасибо за ответы, однако они к сожалению не помогли :(
Цитата:
Цитата:
Ещё раз повторюсь - в программировании я новичёк, поэтому буду очень благодарен, если подскажете как изменить конкретно мой пример, чтобы он зароботал как ожидается. |
Во-первых, избавиться от with.
Во-вторых,
t = setTimeout(function() { self.away() }, 100)
|
Цитата:
А зачем от with избавляться? С with работает... Исправил на без with - тоже работает... Разницу не понял. |
Цитата:
Ещё с ним медленнее. |
| Часовой пояс GMT +3, время: 22:26. |