Существует ли способ обработать неопределенные функции, называемые в JavaScript?

Если у меня есть функция как следующее:

function catchUndefinedFunctionCall( name, arguments )
{
    alert( name + ' is not defined' );
}

и я делаю что-то глупое как

foo( 'bar' );

то, когда нечто не определяется, является там некоторым способом, которым мне можно было назвать мою функцию выгоды, при этом имя было 'нечто' и аргументами, являющимися массивом, содержащим 'панель'?

8
задан Emory 26 March 2010 в 23:36
поделиться

3 ответа

Так или иначе, в Mozilla есть Javascript 1.5 (нестандартный).

Обратите внимание:

var myObj = {
    foo: function () {
        alert('foo!');
    }
    , __noSuchMethod__: function (id, args) {
        alert('Oh no! '+id+' is not here to take care of your parameter/s ('+args+')');
    } 
}
myObj.foo();
myObj.bar('baz', 'bork'); // => Oh no! bar is not here to take care of your parameter/s (baz,bork)

Довольно круто. Подробнее читайте на https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object/NoSuchMethod

10
ответ дан 5 December 2019 в 11:23
поделиться
try {
 foo();
}
catch(e) {
   callUndefinedFunctionCatcher(e.arguments);
}

ОБНОВЛЕНО

передача e.arguments вашей функции даст вам то, что вы пытались передать изначально.

5
ответ дан 5 December 2019 в 11:23
поделиться
someFunctionThatMayBeUndefinedIAmNotSure ? someFunctionThatMayBeUndefinedIAmNotSure() : throw new Error("Undefined function call");
0
ответ дан 5 December 2019 в 11:23
поделиться
Другие вопросы по тегам:

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