Странное поведение JavaScript? - PullRequest
       1

Странное поведение JavaScript?

0 голосов
/ 07 февраля 2012

У меня есть простая функция, которая вызывает другие функции:

function update() {
    updateMissiles();
    updatePlayer;
    updateTurbines();

}

Они похожи друг на друга во всех отношениях, за исключением того, что updatePlayer не будет работать, если я поставлю скобки в конце. Это не нарушает никакого кода, но мне все еще интересно, почему это происходит?

Ответы [ 4 ]

3 голосов
/ 07 февраля 2012

Я предполагаю, что в методе updatePlayer есть исключение, и, поскольку вы не вызываете его в коде, который вы вставили выше, вы не получите исключение.

Я бы открыл Инструменты разработчика для любого браузера, который вы используете, и посмотрел бы, есть ли какие-либо исключения JavaScript.

1 голос
/ 07 февраля 2012

Вы в замешательстве.updatePlayer; не вызывает функцию updatePlayer.updatePlayer(); делает.Что-то еще происходит в вашем коде.

0 голосов
/ 07 февраля 2012

Функция будет работать, только если вы поставите () после ее имени. Если вы не поставите скобки, вы получите содержимое функции. Например, если у вас есть:

function updatePlayer(){ alert('This is a player');}

И назовите это без скобок:

alert(updatePlayer);

выходной сигнал будет

function updatePlayer(){ alert('This is a player');}

Используется, если вы хотите использовать функции обратного вызова.

0 голосов
/ 07 февраля 2012

Не зная больше, невозможно точно точно определить, но, как лучше сказать - в области действия update переменная updatePlayer не является функцией.

Попробуйте войти или отладить свой javascript, чтобы узнать, что происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...