2015-08-10 3 views
0

У меня есть функция, и я хочу посмотреть, что такое значение индекса. Это дает мне 0. Я думал, что это было странно, поэтому я поставил console.log в функцию(), чтобы увидеть, выполнялся ли он или нет, и я не получил вывод, который говорит мне, что функция() не получает вызов. Не уверен, что я делаю неправильно.Javascript Функция не выполняет/возвращает значение

function jsTest() { 

    var index = 0; 
    var counter = 0; 
    var obj = {}; 
    obj.index = index; //obj.index = 0 at this point 

    var func = function() { 

     for (index = 0; index < 10; index++) { 
      counter += 2; 
      console.log(counter); //Doesn't execute for some reason 
     } 
     obj.index++; 
    }; 

    obj.func = func; //executes function() 
    this.index++; 
    return index; 
} 

var x = jsTest(); 
console.log(x); 

ответ

3
obj.func = func; 

фактически не называют FUNC, он присваивает свойству func для obj быть функцией func. Если вы хотите позвонить func, вы должны добавить круглые скобки после этого, как

obj.func = func(); 
+0

Gotcha, поэтому было бы разумно предположить, что из того, что «возвращение индекса» возвращает значение 0, так как функция() не является называемый – Snorlax

+1

Функция, конечно, не вызывается, и это предотвратит инкремент индекса. Однако у вас есть несколько разных индексов, поэтому, если это не устранит вашу проблему, я бы удостоверился, что вы возвращаетесь и увеличиваете правоту – StephenTG

Смежные вопросы