Ingernirated
@Ingernirated
Романыч

Почему функция не выводит alert?

Подскажите, почему на выходе не получается команда alert("hello100") ?
И как этого добиться?
var x = 100;
function move() {
var z = "alert(hello" + x + ");";
return z;
}
move();
  • Вопрос задан
  • 441 просмотр
Решения вопроса 2
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
https://jsfiddle.net/1wrq4m09/
var x = 100;
function move(param) {
  return function(){
		alert("hello" + param)
  }
}

move(x)();
Ответ написан
Stalker_RED
@Stalker_RED
Потому, что есть разница между данными и кодом. В вашей "z" хранится строка alert("hello100"), и после выполнения move() она уничтожается.

Сделать можно так:

var x = 100;
function move() {
  alert("hello" + x);
}
move();

Или так
var x = 100;
function move() {
  var z = "alert(hello" + x + ");";
  return z;
}
var y = move();
eval(y);


Но второго способа лучше избегать, т.к. он довольно рисковый в плане безопасности. Про то, почему eval is evil довольно много статей написано.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы