Блог веб разработки статьи | видеообзоры | исходный код

Блог веб разработки статьи | видеообзоры | исходный код

webfanat вконтакте webfanat youtube

Конструктор функций javaScript

Конструктор функций  javaScript

Здравствуйте дорогие друзья и давайте перейдем к рассмотрению. И так, конструктор function позволяет создавать динамически новые функции. Самому конструктору передаются три аргумента в виде строки. Первые два аргумента отвечают за параметры а последний за тело функции.

var add = new Function('f','l',"document.write(f+ '*'+ l+'='+(f*l))");
add(10,10);

как видите здесь мы создали функцию add с двумя параметрами 'f' , 'l' и следующим содержимым в ходе которого у нас выведется результат умножения двух чисел.

Хочу отметить что с помощью данного конструктора мы можем не только создавать новые функции, но и переопределять их.

function add(a, b){
    document.write(a+ "+" + b + "=" +(a+b));
}
var add = new Function('f','l',"document.write(f+ '*'+ l+'=' + (f*l))");
add(7,7);

в данном примере функция add осуществляла сложение двух аргументов, после использования конструктора она перемножает их.

var add = new Function('f','l',"document.write(f+ '*'+ l+'=' + (f*l))");
var add = new Function('f','l',"document.write(f+ '-'+ l+'=' + (f-l))");
add(15,5);

а здесь мы переопределили динамически созданную функцию конструктора.

Общую суть использования данного конструктора я думаю вы уловили.

Теперь поговорим про передачу аргументов. Честно сказать я немного слукавил когда сказал что в конструкторе можно определять только два аргумента для функции.

Их можно определять сколько угодно или вообще не указывать:

var add = new Function("document.write('Привет мир')");
add();

здесь мы сгенерировали функцию без аргументов.

var add = new Function('a','b','c','d',"document.write(a+b+c+d)");
add(5,10,15,20);

а тут указали целых четыре аргумента. Конечно при большом количестве аргументов такая запись будет не очень удобной. Поэтому мы можем указать так:

var add = new Function("...args","document.write(args[0]+args[1]+args[2]+args[3])");
add(5,10,15,20);

как видите для перечисления всех аргументов args мы воспользовались оператором расширения '...'.

Ничто не мешает нам задавать аргументу дефолтное значение:

var add = new Function("a","b = 2","document.write(a*b)");
add(5);

если мы функции add передаем единственное значение, то оно умножается на два.

var add = new Function("a","b = 2","document.write(a*b)");
add(5,10);

здесь же мы добавили второй параметр и в результате чего теперь первый аргумент умножается на второй.

Вот в принципе и все что я хотел рассказать вам про данный конструктор. Надеюсь данная информация была для вас полезна и вы не раз еще ею воспользуетесь.

Желаю удачи и успехов! Пока!

Оцените статью:

Статьи

Комментарии

Внимание!!! Комментарий теперь перед публикацией проходит модерацию

Все комментарии отправлены на модерацию

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm