Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.12.2016, 01:26
Интересующийся
Отправить личное сообщение для polin11 Посмотреть профиль Найти все сообщения от polin11
 
Регистрация: 13.01.2015
Сообщений: 10

Повторение метода экземпляра класса
Есть класс, нужно чтобы имя экземпляра выводилось в DOM с промежутком 1 сек. Есть прекрасные функции setInterval, setTimeout.
Пробовал так
<html>
<head>
<script type="text/javascript">
function animal()
{
    this.name="WOLF";
}
animal.prototype.repeat=function(){
	console.log(this);
	document.getElementById('target').innerHTML+=this.name+'<br/>';
}
document.addEventListener('DOMContentLoaded', function () {
var ex=new animal();

setInterval(ex.repeat(), 1000); //отображается 1 раз имя на странице и в консоль 

});
</script>
</head>
<body>
<div id="target"></div>
</body>
</html>

Еще так
<html>
<head>
<script type="text/javascript">
function animal()
{
    this.name="WOLF";
}
animal.prototype.repeat=function(){
	console.log(this);
	document.getElementById('target').innerHTML+=this.name+'<br/>';
	setInterval(this.repeat(), 1000); //На страницу и в консоль не выводит, браузер зависает
}
document.addEventListener('DOMContentLoaded', function () {
var ex=new animal();
ex.repeat();
});
</script>
</head>
<body>
<div id="target"></div>
</body>
</html>

И так:

<html>
<head>
<script type="text/javascript">
function animal()
{
    this.name="WOLF";
}
animal.prototype.repeat=function(){
	console.log(this);
	document.getElementById('target').innerHTML+=this.name+'<br/>';
	setTimeout(this.repeat(), 1000); //В консоль выводит, но на страницу нет, браузер зависает
}
document.addEventListener('DOMContentLoaded', function () {
var ex=new animal();
ex.repeat();
});
</script>
</head>
<body>
<div id="target"></div>
</body>
</html>

Помогите как сделать
Ответить с цитированием
  #2 (permalink)  
Старый 21.12.2016, 02:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

polin11,
<html>
<head>
<script type="text/javascript">
function animal()
{
    this.name="WOLF";
}
animal.prototype.repeat=function(){
  var self = this;
  document.getElementById('target').innerHTML+=this.name+'<br/>';
  setTimeout(self.repeat.bind(self), 1000);
}
document.addEventListener('DOMContentLoaded', function () {
var ex=new animal();
ex.repeat();
});
</script>
</head>
<body>
<div id="target"></div>
</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование классов в JavaScript devote Ваши сайты и скрипты 70 01.02.2013 17:17
Перехват вызова несуществующего метода класса bartwell Events/DOM/Window 16 19.07.2012 03:28
Свойства/методы класса TicTac Общие вопросы Javascript 5 03.07.2011 14:53
Как внутри класса вызвать метод из соседнего метода Shahurik Общие вопросы Javascript 2 13.11.2009 12:20
Переопределение метода базового класса walash jQuery 18 15.07.2009 17:05