MarkNopfler Ответов: 1

Можно ли было бы вызвать функцию внутри IF?


Пример:

var abc = '';
if(1 === 0){
    function a(){
        abc = 7;<code></code>
    }
}else if('a' === 'a'){
    function a(){
        abc = 19;
    }
}else if('foo' === 'bar'){
    function a(){
        abc = 'foo';
    }
} 
a();
document.write(abc);


Что я уже пробовал:

ПРИМЕР...
if ( true ) {
    Function a();
    function testFunction() {
        alert(‘testFunction called’);
    }
}


Тест...

[no name]

Хорошо, я вижу дамп кода, но не вижу вопроса.

MarkNopfler

Я приспособлюсь к тому, что ты особенно понимаешь. Может быть, это займет несколько лет. Ответьте там, вы получите больше очков, чем удовольствия!

ZurdoDev

Вы не можете определить функцию внутри if, но вы можете вызвать ее очень легко.

1 Ответов

Рейтинг:
11

ZurdoDev

Вы не определяете функции внутри if, но вы можете их вызывать.

function DoSomething(){

}

if (x == y){
  DoSomethg();
}


MarkNopfler

Большое вам спасибо! Мне это очень помогло.

ZurdoDev

Пожалуйста. Рад это слышать.

Обратите внимание, что теги br-это ошибка на веб-сайте прямо сейчас, так что, надеюсь, вы знаете, как их игнорировать.

MarkNopfler

Я вижу.Не проблема. Спасибо.

Richard Deeming

Я не согласен - вполне возможно определить функцию внутри if блок: Пример[^]

Просто одна из многих причуд, которая делает работу с Javascript такой "веселой". :)

ZurdoDev

Да, это правда, но ОП был новичком, и я никогда не видел веской причины для этого и не хотел ничего путать. Но вы правы.

Richard Deeming

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

ZurdoDev

Я это видел. Спасибо.

MarkNopfler

Это своеобразный способ сделать это, но это также решает проблему и работает. Это действительно весело, рсрс. Спасибо!