2014-01-29 2 views
5

Как реализовать массив указателей функций в JavaScript в своем документе XHTML? Сегодня мы узнали в лекции о том, как реализовать функции JavaScript в документе XHTML, но как насчет массивов указателей на функции? Могу ли я поместить кучу функций в массив и разыменовать их по индексу, как это делается на C++? Просто любопытно ...Массив функций указателей в JavaScript?

ответ

5

Вы можете просто разместить ссылки на свои функции в массиве. Например:

function func1() { alert("foo"); } 
function func2() { alert("bar"); } 
function func3() { alert("baz"); } 
var funcs = [ func1, func2, func3 ]; 

funcs[0](); // "foo" 

Конечно, вы можете так же легко использовать анонимные функции, как это:

var funcs = [ 
    function() { alert("foo"); }, 
    function() { alert("bar"); }, 
    function() { alert("baz"); } ]; 

funcs[0](); // "foo" 
+0

Я вижу ... Прикольно ... –

2

Там нет таких вещей, как указатели в JavaScript. Поэтому нет необходимости «разыгрывать». Вы можете использовать функции и поместить их в массивы, как вам нравится:

var fns = [ f1, f2, function() { console.log('!'); } ]; 

Вы можете получить доступ и вызвать их, выполнив:

fns[2](); 
+0

Что "console.log ('!');" делать? –

+0

@ user3250884 печатает '!' В консоли JavaScript вашего браузера. (обычно вы можете получить к нему доступ, нажав F12) –

+0

@ user3250884 Он печатает на консоли строку ''! "'. – 0x499602D2

0

Если код просматривает этот массив и выполнение этих функций, вы также должны убедиться, что они действительно являются действительными функциями. Вы можете сделать это в чистом javascript, но jQuery и другие библиотеки имеют удобные «isFunction» шашки, которые я буду использовать для простоты и ясности.

http://api.jquery.com/jquery.isfunction/

+0

Интересно ...... –

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