конструктор JavaScript это не связано правильно - PullRequest
1 голос
/ 26 мая 2011

Проблема: я определяю конструктор в JavaScript, я пробовал почти каждый шаблон, который я могу придумать / Google.По какой-то причине независимо от того, что я делаю, когда вызываю функцию-член этого объекта, ключевое слово this всегда связано с window.Я не знаю, что делать.

JsFiddle: http://jsfiddle.net/za6SN/2/

Ответы [ 2 ]

2 голосов
/ 26 мая 2011

Do

setInterval(function() {ball.draw()}, 50);

Без вас будет передаваться только ссылка на функцию ball.draw, и это будет указывать на окно

1 голос
/ 26 мая 2011

Когда вы передаете ссылку на метод как ball.draw, его this устанавливается на window, потому что он потерял свой контекст.

Лучший способ - использовать анонимную функцию . Другой способ не рекомендуется (он вызывает eval()), поэтому я даже не буду упоминать его здесь.

...