2016-02-02 2 views
4

Вот мой код, я работаю над приложением Node.js, я хотел бы определить переменную внутри функции, а затем использовать ее значение вне функции тоже, как я могу это достичь?Определение переменной внутри js-функции, а затем ее использование вне функции?

var readline = require('readline'); 
var rl = readline.createInterface(process.stdin, process.stdout); 
rl.setPrompt('guess> '); 
rl.prompt(); 
rl.on('line', function (line) { 
    inputl = line; //I belive not using Var makes the variable Global? am 
    am I correct in thinking so? 
      if (line === "correct") 
     console.log('correct answer my freind.')//rl.close(); 
    if (line === 'quit') 
     rl.close(); 
    rl.prompt(); 
}).on('close', function() { 
    process.exit(0); 
}); 
{ 
    console.log(inputl); 
} 

Спасибо за вашу помощь. Я переключился на sync.prompt, который теперь исправил проблему. Ваши ответы помогли мне в понимании js, поэтому они действительно послужили цели.

+0

Зачем определять его внутри функции? Вы можете объявить его вне функции, а затем назначить ему значение внутри функции. Просто знайте, что значение будет 'undefined', когда вы сделаете первый вызов' console.log' внизу. –

+0

Потому что я не могу сделать это снаружи. –

+0

Console.log вызывает внизу, чтобы показать, была ли указана моя переменная, ее там чисто для меня. –

ответ

0

EDITED

декларация верхнего уровня для Node является:

var yourVar = ''; 

Там нет другого global что бы достижимы, когда объявленная внутри функции.

Более подробно об этом можно прочитать HERE

+0

yup, есть ли альтернатива узлу? –

+0

Touche .. Тогда единственный способ сделать это - объявить вне функции. 'var something;' – Zak

+0

Могу ли я установить функцию как значение переменной? как var myvar = function (myfunction); –

1

В nodejs var varName в модуле определяет локальный переменный модуль. Ref. Это отличается от того, как работает JavaScript в браузере.

Если вы должны определить глобальную переменную из функции, вы можете использовать global.input1 = line; в узле (эта же ссылка, как указано выше).

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