Javascript functions

1,402 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,402
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Javascript functions

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

×