[ID CS4-CS6] значение по умолчанию при вызове функции

bossrus

шибка умный, аднака
Топикстартер
12 лет на форуме
Сообщения
447
Реакции
74
сделал скрипт
Код:
opa(false);
function opa(aaa)
{
    alert(aaa);
}
выдаёт false и ощущение того, что я умненький и умею писать скрипты :)

теперь читаю мануал по яваскрипту:
Параметры функции можно инициализировать значениями по умолчанию, которые будут использоваться в том случае, если параметры не были инициализированы аргументами при вызове функции:
function foo(greeting = "Привет", name = "Гость")
соответственно, переписываем скрипт под значение по умолчанию:
Код:
opa(false);
function opa(aaa = true)
{
    alert(aaa);
}
ииии
Screen Shot 2019-08-15 at 15.24.00.png

ну как так-то?
как в индизайновском яваскрипте задать значение по умолчанию?


смысл данного действа заключается в том, что есть функция в библиотеке, которая используется в нескольких десятках других скриптов. но вот в новом скрипте потребовалось передать ей параметр. в c# в таких случаях, чтобы не переписывать все вхождения функции, я добавляю в функцию необязательный параметр со значением по умолчанию, и всё становится хорошо. а тут чтойт не срастаеццо :(

зы. прикольный спойлер сделали
:)
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 229
Реакции
10 851
теперь читаю мануал по яваскрипту:
По какому именно яваскрипту?
В адобовском яваскрипте дофига чего не так, чем в браузерном
В вашем же случае просто в начале процедуры надо проверку на undefined параметра ставить
JavaScript:
opa();
function opa(aaa)
{
    if (aaa==undefined) aaa=true;
    alert(aaa);
}
 
Последнее редактирование:
  • Спасибо
Реакции: bossrus

bossrus

шибка умный, аднака
Топикстартер
12 лет на форуме
Сообщения
447
Реакции
74
В вашем же случае просто в начале процедуры надо проверку на undefined параметра ставить
он не доходит до запуска скрипта. ошибка возникает при компиляции
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
ну да, в начало функции
if(aaa==undefined) aaa=true;
 
  • Спасибо
Реакции: bossrus

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 229
Реакции
10 851
Код в посте выше работает
 

bossrus

шибка умный, аднака
Топикстартер
12 лет на форуме
Сообщения
447
Реакции
74
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 229
Реакции
10 851
  • Спасибо
Реакции: bossrus

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
ну как так-то?
как в индизайновском яваскрипте задать значение по умолчанию?
JavaScript:
function test (a, b, c) {
    switch (arguments.length) {
        case 0:
            var a = 3;
        case 1:
            var b = 4;
        case 2:
            var c = 7;
        break;
    }
    $.writeln([a, b, c].toString());
}

test('d');
test('d', 'm');
test('d', 'm', 'b');
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 229
Реакции
10 851
switch (arguments.length) { case 0: var a = 3; case 1: var b = 4; case 2: var c = 7; break; }
Какой то совсем индусский вариант
Разве так не красивее?
JavaScript:
opa();
opa("aaa");
opa("aaa","bbb");
function opa(aaa,bbb,ccc)
{
    if (aaa==undefined) aaa="Харе Кришна";
    if (bbb==undefined) bbb="Кришна харе";
    if (ccc==undefined) ccc="Харе Кришна";
    alert(aaa+bbb+ccc);
}
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 229
Реакции
10 851
Ну разве что так
 

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
Не разве что. Довольно часто в методы InDesign приходится передавать undefined. Особенно этим грешит ScriptUI.