SlideShare uma empresa Scribd logo
1 de 15
Функции Язык JavaScript Алексей Бованенко
Создание функций Ключевое слово function functionmyFunction(){  …} var f = function(){  …} functionИмяФункции(параметр, параметр){}
Декларация и вызов Функция может быть вызвана до своей декларации myFunc(); fucntionmyFunc(){  alert(“Моя функция”);}
Анонимная функция Работа с анонимными функциями Сохранение функции в переменной var f = function(){   alert(“Моя функция”);} f(); Использование в качестве возвращаемого значения function f1(){ return function(){ alert(“Hi!”); }; }
Анонимные функции Непосредственный вызов анонимной функции (function() {      alert(“Моя функция”);})();
Аргументы функции function FuncName(аргументы){} function f1(){		alert(“Hello!”);} function f2(name){		alert(“Hello, “ + name);}
Использование аргументов Не все аргументы обязательно использовать function f(a, b, c){	alert(“a: “+ a + “ b: “ + b + “ c: “ + c);} f(10, “hello”);
Использование аргументов Можно использовать больше аргументов, чем указано (все значения – в arguments) function f(a, b){	alert(a);	alert(b);	for(vari=0; i<arguments.length;++i)		alert(arguments[i]);} f(10, 20, 30, 40);
Возвращаемые значения Все функции возвращают значения Без использования return function f1(a, b){         var c = a + b;  } alert( typeof f1(10,20)); // undefined С использованием return function f2( a, b ){ 	return a + b;  } alert( typeof  f2(10,20)); // number
Функциякак метод Функция может быть методом объекта varmyObj={myProperty : 20}; myObj.myMethod = function(){	return this.myProperty;} alert(myObj.myMethod()); //  20
Потеря функцией контекста Контекст – объект  varmyObj={myProperty : 20}; myObj.myMethod = function(){	return this.myProperty;} Смена контекста varmyFunc = myObj.myMethod; alert(myFunc()); //  undefined
Навязывание контекста callи applyпозволяют указать контекст для функции func.call(object); func.apply(object); Различия между callи apply func.call(object, param1, param2); func.apply(object, [param1, param2]);
Пример задания контекста varobj = {myProp : 20}; obj.test=function(){return this.myProp;}; alert(obj.test());// 20 vart = obj.test; // смена контекста alert(t());// undefined alert(t.call(obj)); // 20, задание контекста alert(t.apply(obj));// 20, задание контекста
Различия между call и apply varf = function(val1, val2){return this.myProp + val1 + val2;} varobj={myProp : 42}; alert( f( 10, 20) ); // NaN alert( f.call( obj, 10, 20) );  // 72 alert( f.apply( obj, [10, 20] ) );   // 72
Спасибо за внимание Конец e-mail: a.bovanenko@gmail.com http://slideshare.net/albova

Mais conteúdo relacionado

Mais procurados

лабораторная работа №5
лабораторная работа №5лабораторная работа №5
лабораторная работа №5
Zhanna Kazakova
 
Cpp/cli types
Cpp/cli typesCpp/cli types
Cpp/cli types
mcroitor
 
Cpp/cli particularities
Cpp/cli particularitiesCpp/cli particularities
Cpp/cli particularities
mcroitor
 

Mais procurados (19)

стандартная библиотека с++: введение
стандартная библиотека с++: введениестандартная библиотека с++: введение
стандартная библиотека с++: введение
 
особенности программирования на с++
особенности программирования на с++особенности программирования на с++
особенности программирования на с++
 
алгоритмы stl
алгоритмы stlалгоритмы stl
алгоритмы stl
 
Контейнер сервисов
Контейнер сервисовКонтейнер сервисов
Контейнер сервисов
 
лекция 2
лекция 2лекция 2
лекция 2
 
лабораторная работа №5
лабораторная работа №5лабораторная работа №5
лабораторная работа №5
 
Догнать и перегнать boost::lexical_cast
Догнать и перегнать boost::lexical_castДогнать и перегнать boost::lexical_cast
Догнать и перегнать boost::lexical_cast
 
Огранизация ввода и вывода данных
Огранизация ввода и вывода данныхОгранизация ввода и вывода данных
Огранизация ввода и вывода данных
 
Cpp/cli types
Cpp/cli typesCpp/cli types
Cpp/cli types
 
контейнеры STL
контейнеры STLконтейнеры STL
контейнеры STL
 
Подпрограммы
ПодпрограммыПодпрограммы
Подпрограммы
 
C++ и базы данных
C++ и базы данныхC++ и базы данных
C++ и базы данных
 
верификация
верификацияверификация
верификация
 
Всё ли ты знаешь о JavaScript ООП?
Всё ли ты знаешь о JavaScript ООП?Всё ли ты знаешь о JavaScript ООП?
Всё ли ты знаешь о JavaScript ООП?
 
Lecture 8
Lecture 8Lecture 8
Lecture 8
 
Lecture 5
Lecture 5Lecture 5
Lecture 5
 
Cpp/cli particularities
Cpp/cli particularitiesCpp/cli particularities
Cpp/cli particularities
 
8 3-5
8 3-58 3-5
8 3-5
 
3.3 Конструкторы и деструкторы
3.3 Конструкторы и деструкторы3.3 Конструкторы и деструкторы
3.3 Конструкторы и деструкторы
 

Destaque (7)

Files. Php.
Files. Php.Files. Php.
Files. Php.
 
Javascript String object
Javascript String objectJavascript String object
Javascript String object
 
Port Commission Meetings: TV or Not TV?
Port Commission Meetings: TV or Not TV?Port Commission Meetings: TV or Not TV?
Port Commission Meetings: TV or Not TV?
 
Sloan C 2009 Feedback Ingram Bateman
Sloan C 2009 Feedback Ingram BatemanSloan C 2009 Feedback Ingram Bateman
Sloan C 2009 Feedback Ingram Bateman
 
Choosing Collaborative Systems Ingram Parker
Choosing Collaborative Systems Ingram ParkerChoosing Collaborative Systems Ingram Parker
Choosing Collaborative Systems Ingram Parker
 
The 5 Coolest Muppets Of All
The 5 Coolest Muppets Of AllThe 5 Coolest Muppets Of All
The 5 Coolest Muppets Of All
 
Assert c
Assert cAssert c
Assert c
 

Semelhante a Javascript functions

DevConf. Дмитрий Сошников - ECMAScript 6
DevConf. Дмитрий Сошников - ECMAScript 6DevConf. Дмитрий Сошников - ECMAScript 6
DevConf. Дмитрий Сошников - ECMAScript 6
Dmitry Soshnikov
 
Характерные черты функциональных языков программирования
Характерные черты функциональных языков программированияХарактерные черты функциональных языков программирования
Характерные черты функциональных языков программирования
Alex.Kolonitsky
 
Как программировать на JavaScript и не выстрелить себе в ногу
Как программировать на JavaScript и не выстрелить себе в ногуКак программировать на JavaScript и не выстрелить себе в ногу
Как программировать на JavaScript и не выстрелить себе в ногу
AndreyGeonya
 
AddConf. Дмитрий Сошников - Будущее ECMAScript
AddConf. Дмитрий Сошников  - Будущее ECMAScriptAddConf. Дмитрий Сошников  - Будущее ECMAScript
AddConf. Дмитрий Сошников - Будущее ECMAScript
Dmitry Soshnikov
 
Антон Веретенников и Илья Семаков. Презентация
Антон Веретенников и Илья Семаков. ПрезентацияАнтон Веретенников и Илья Семаков. Презентация
Антон Веретенников и Илья Семаков. Презентация
Daria Oreshkina
 

Semelhante a Javascript functions (11)

JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 03.JavaScript Базовый. Занятие 03.
JavaScript Базовый. Занятие 03.
 
Михаил Давыдов - Транспорт, ajax
Михаил Давыдов - Транспорт, ajaxМихаил Давыдов - Транспорт, ajax
Михаил Давыдов - Транспорт, ajax
 
Поговорим о JavaScript, основы и современные тенденции развития языка
Поговорим о JavaScript, основы и современные тенденции развития языкаПоговорим о JavaScript, основы и современные тенденции развития языка
Поговорим о JavaScript, основы и современные тенденции развития языка
 
DevConf. Дмитрий Сошников - ECMAScript 6
DevConf. Дмитрий Сошников - ECMAScript 6DevConf. Дмитрий Сошников - ECMAScript 6
DevConf. Дмитрий Сошников - ECMAScript 6
 
Cocoheads Moscow September
Cocoheads Moscow SeptemberCocoheads Moscow September
Cocoheads Moscow September
 
Характерные черты функциональных языков программирования
Характерные черты функциональных языков программированияХарактерные черты функциональных языков программирования
Характерные черты функциональных языков программирования
 
Как программировать на JavaScript и не выстрелить себе в ногу
Как программировать на JavaScript и не выстрелить себе в ногуКак программировать на JavaScript и не выстрелить себе в ногу
Как программировать на JavaScript и не выстрелить себе в ногу
 
Асинхронный JavaScript
Асинхронный JavaScriptАсинхронный JavaScript
Асинхронный JavaScript
 
AddConf. Дмитрий Сошников - Будущее ECMAScript
AddConf. Дмитрий Сошников  - Будущее ECMAScriptAddConf. Дмитрий Сошников  - Будущее ECMAScript
AddConf. Дмитрий Сошников - Будущее ECMAScript
 
Антон Веретенников и Илья Семаков. Презентация
Антон Веретенников и Илья Семаков. ПрезентацияАнтон Веретенников и Илья Семаков. Презентация
Антон Веретенников и Илья Семаков. Презентация
 
Архитектура минимальных Ui компонент
Архитектура минимальных Ui компонентАрхитектура минимальных Ui компонент
Архитектура минимальных Ui компонент
 

Mais de Alexey Bovanenko

Mais de Alexey Bovanenko (20)

Python sqlite3
Python sqlite3Python sqlite3
Python sqlite3
 
Python. re
Python. rePython. re
Python. re
 
python dict
python dictpython dict
python dict
 
Python. Строки
Python. СтрокиPython. Строки
Python. Строки
 
Python. Введение
Python. ВведениеPython. Введение
Python. Введение
 
Nio java
Nio javaNio java
Nio java
 
Конвертация строковых данных в числовые
Конвертация строковых данных в числовыеКонвертация строковых данных в числовые
Конвертация строковых данных в числовые
 
Обработка символов в языке C
Обработка символов в языке CОбработка символов в языке C
Обработка символов в языке C
 
System c
System cSystem c
System c
 
File. Java
File. JavaFile. Java
File. Java
 
ZIP, GZIP Streams in java
ZIP, GZIP Streams in javaZIP, GZIP Streams in java
ZIP, GZIP Streams in java
 
Конструктор копирования
Конструктор копированияКонструктор копирования
Конструктор копирования
 
Tempale Intro
Tempale IntroTempale Intro
Tempale Intro
 
transaction. php
transaction. phptransaction. php
transaction. php
 
cookie. support by php
cookie. support by phpcookie. support by php
cookie. support by php
 
php sessions
php sessionsphp sessions
php sessions
 
Java IO. Streams
Java IO. StreamsJava IO. Streams
Java IO. Streams
 
Regular Expressions
Regular ExpressionsRegular Expressions
Regular Expressions
 
Classes: Number, String, StringBuffer, StringBuilder
Classes: Number, String, StringBuffer, StringBuilderClasses: Number, String, StringBuffer, StringBuilder
Classes: Number, String, StringBuffer, StringBuilder
 
Объект Logger
Объект LoggerОбъект Logger
Объект Logger
 

Javascript functions