jQuery / JS: извлечение значения параметра из функции

#javascript #jquery #variables #parameter-passing #awesomium

#javascript #jquery #переменные #передача параметров #потрясающе

Вопрос:

Допустим, у меня есть функция в JS function playerJob(job){}

Я вызываю этот метод из C , используя Awesomium, в основном говоря

 int currentJob = GameModeState::changeJob(false);
mScreen->executeJavascript("map.playerJob(currentJob);");
  

Все, что я хочу, чтобы вы увидели, это то, что я присваиваю своей JS-функции playerJob значение для ее параметра.


Что я хочу сделать, так это затем использовать playerJob в моем JS, чтобы узнать, какое значение job есть. Я хочу присвоить переменной это значение. Я не знаю, как получить это значение из моего метода без необходимости вводить параметр. Допустим, у меня есть мой метод быть

 function playerJob(job) {
    return job;
}
  

И я пытаюсь получить работу, говоря:

var currentJob = playerJob();

Это не работает, вероятно, потому, что мне нужно поместить что-то в круглые скобки.

Я знаю, что мог бы использовать playerJob вот так:

 function playerJob(job) {
    someOtherFunction(job);
}
  

Но проблема в том, что мне нужна эта job переменная, прежде чем я вызову какие-либо обычные «функции». Мне нужно использовать его в

 $(document).ready(function()
{
   $("#div").click(function(e)
   {
  

Которое я действительно не могу «вызвать».

Есть ли способ с помощью jQuery получить эту переменную из моей playerJob функции?

Ответ №1:

Возможно, сохранение глобальной переменной является правильным решением в этом случае.

 var currentJob=null;
//var currentJob="Default Job;

function playerJob(job) {
    if (job) currentJob=job;  //    <------- UPDATED
    someOtherFunction(job);
}

$("#div").click(function(e){
   if (currentJob) alert(currentJob);
}
  

Комментарии:

1. Я играю с этим. Я думаю, что это работает, но сначала я подтвержду.

2. Похоже, что CurrentJob остается «нулевым», но это может быть проблемой при настройке playerJob. Все еще работает ~

3. CurrentJob останется нулевым, если вы вызываете функцию без параметра. Смотрите Обновление

4. Ваше предложение эффективно для того, что мне нужна была помощь в выполнении. Спасибо.