проблема с 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, время: 04:09. |