WEB PHP 09 - Синтаксис JavaScript 02.ppt
- Количество слайдов: 25
Синтаксис языка Java. Script web-программирование (js)
Содержание • Функции • Объекты web-программирование (js)
Функции в Java. Script Именованная функция: function Foo() { alert ('вызвали функцию Foo'); }// Foo(); Global. Func(); function Global. Func() { alert ('вызвали функцию Global. Func'); }// Global. Func() Анонимная функция: var foo = function() { alert ("вызвали анонимную функцию"); }; // foo(); web-программирование (js)
Функции в Java. Script Анонимная функция: //not. Loaded. Func(); //! ОШИБКА: not. Loaded. Func is not a function var not. Loaded. Func = function() { alert ("не получится вызвать до определения"); }; // not. Loaded. Func() Еще один вариант анонимной функции: var foo = new Function ('param 1', 'param 2', 'return param 1 + param 2; '); alert( foo(15, 42) ); // 57 Переопределение функций: function Foo() { alert ("1"); }// Foo(); // выводит 2 function Foo() { alert ("2"); }// Foo() web-программирование (js)
Функции в Java. Script Параметры функции: function Foo (first, second) { alert (first); alert (second); }// Foo() Foo ('abc', 42); // abc // 42 // правильное количество Foo ('11742'); // 11742 // undefined // меньше, чем надо Foo ('first', 'second', 'unwanted'); // first // second // больше, чем надо web-программирование (js)
Функции в Java. Script Возвращение результата: function Foo() { return; }// Foo() alert( Foo() ); // undefined function Foo() { return 15; }// Foo() alert( Foo() ); // 15 function Foo() { return ['dsd', 'вап', 42]; }// Foo() // анонимный массив alert( Foo() ); // dsd, вап, 42 web-программирование (js)
Функции в Java. Script Значения параметров по умолчанию: function Foo (param) { param = param || 15; alert (param); }// Foo() Foo ('сорок два'); // сорок два Foo (); // 15 Foo (0); // 15 function Foo (param) { if (param == undefined) param = 15; alert (param); }// Foo(); // 15 Foo (false); // false Foo (0); // 0 web-программирование (js)
Функции в Java. Script Параметры, изменяемые внутри функции: function Foo (param) { param = 100500; }// Foo() var x = 42; Foo (x); alert (x); //! не сработает – не изменится вне функции // 42 function Foo (param. Obj) { param. Obj. param = param. Obj. param + 234; }// Foo() var x = { param: 42 }; Foo (x); alert (x. param); // сработает // объект – ассоциативный массив // 276 web-программирование (js)
Функции в Java. Script Изменяемое количество параметров: function Foo() { alert ('Всего параметров: ' + arguments. length); alert ('Первый: ' + arguments[0]); alert ('Последний: ' + arguments [arguments. length - 1]); }// Foo() Foo ('начало', 'второй', 3, 42); // Всего параметров: 4 // Первый: начало // Последний: 42 web-программирование (js)
Функции в Java. Script Именованные параметры: function Foo (pars) { pars = pars || {}; pars. first = pars. first || 0; if (pars. second == undefined) pars. second = 1000; alert (pars. first + pars. second); pars. result = 42; }// Foo() var params = { second: 'значение параметра', first: 'очень длинное ' }; Foo (params); // очень длинное значение параметра alert (params. result); // 42 web-программирование (js)
Функции в Java. Script Контекст выполнения функции: function Wrap() { var inside. Wrap = 'yeee: ' + global; function Inside() { alert (inside. Wrap); }// Inside(); }// Wrap() var global = 42; Wrap(); // yeee: 42 global = 115; Wrap(); // yeee: 115 web-программирование (js)
Функции в Java. Script Функция-замыкание: var usefull = 'внешний'; var foo = function (param) { alert (usefull + param); }; // foo() foo (' параметр'); // внешний параметр Замыкание – это когда локальные переменные родительской функции после ее завершения продолжают быть доступными во вложенной функции (она замыкает на себя контекст) var arr = []; var arr. Add = function (item) { item = parse. Int (item); if ( !is. Na. N(item) ) arr [arr. length] = item; }; // arr. Add() arr. Add (5); arr. Add ('ололо'); arr. Add ('42'); alert (arr); // 5, 42 web-программирование (js)
Функции в Java. Script Контекст выполнения функций-замыканий: function Wrap (param) { var foo = function() { alert (wrap. Param); // видит переменные родителя wrap. Param = wrap. Param + '_ещЁ'; }; // foo() var wrap. Param = param + '24'; return foo; }// Wrap() var a = Wrap ('работа'); a(); // работа 24 var b = Wrap ('отдых'); b(); // отдых24 a(); b(); a(); // работа 24_ещЁ // отдых24_ещЁ // работа 24_ещЁ web-программирование (js)
Функции в Java. Script Свойства функции в качестве объекта: function Func. Obj() { alert (arguments. callee. some); }// Func. Obj() Func. Obj. some = 'афигенно'; Func. Obj(); web-программирование (js)
Объекты в Java. Script Ассоциативный массив: var hash = { 'world': 'мир', 'hello': 'привет' }; alert( hash. hello ); alert( hash['world'] ); // привет // мир Проверка на наличие элемента: var hash = { isset: 'искомый элемент' }; if (hash ['isset'] !== undefined) alert( 'найдено' ); else alert( 'нет такой записи' ); // найдено if (hash ['wrong'] !== undefined) alert( 'найдено' ); else alert( 'нет такой записи' ); // нет такой записи web-программирование (js)
Объекты в Java. Script Обход всех элементов ассоциативного массива: var hash = {}; hash. artist = 'Cathy Davey'; hash['название трека'] = 'Holy Moly'; hash['comment'] = 'OST к неудачному фильму'; for (var i in hash) { alert( 'ключ: ' + i + '; значение: ' + hash[i] ); }// foreach hash. . . // ключ: artist; значение: Cathy Davey // ключ: название трека; значение: Holy Moly // ключ: comment; значение: OST к неудачному фильму web-программирование (js)
Объекты в Java. Script Создание объекта: var obj = new Object(); var obj = { }; Свойства объекта: var animal = new Object(); animal. Type = 'котэ'; animal. Name = 'Саблезуб'; var complicated = new Object(); var param. Name = 'собранное' + 'по частям' + 'имя свойства'; complicated [param. Name] = '42'; web-программирование (js)
Объекты в Java. Script Методы объекта: var robot = new Object(); robot. Name = 'Марвин'; robot. Talk = function() { alert( this. Name + ' говорит: "как все безрадостно вокруг"' ); }; robot. Talk(); // Марвин говорит: "как все безрадостно вокруг" var person 1 = { Name: 'Семен' }; var person 2 = { Name: 'Ванда' }; person 1. Who. Are. You = function() { alert( this. Name ); }; // Who. Are. You() person 2. Who. Are. You = person 1. Who. Are. You; person 1. Who. Are. You(); person 2. Who. Are. You(); // Семен // Ванда • this – определяет вызвавший объект web-программирование (js)
Объекты в Java. Script Создание объекта при помощи функции-конструктора: function Foo. Class (name) { this. Name = name; this. Say. Name = function() { alert (this. Name); }; // Say. Name() }// Foo. Class() var obj = new Foo. Class ('классег'); obj. Say. Name(); // классег web-программирование (js)
Объекты в Java. Script Концепция прототипов: function animal() { this. Foo = function() { /*. . . */ } }// animal() function rabbit() { this. Param = '. . . '; }// rabbit() // не находит у себя, использует из прототипа © javascript. ru rabbit. prototype = new animal(); rabbit. Foo(); web-программирование (js)
Объекты в Java. Script Наследование объектов: function Animal() { this. args = { Alive: true }; this. Run = function (d) { this. Distance += d; }; }// Animal function Fox() { this. Distance = 0; }// Fox() Fox. prototype = new Animal(); var f 1 = new Fox(); var f 2 = new Fox(); f 1. Run(10); f 2. Run(420); alert( f 1. Distance ); alert( f 2. args. Alive ); f 1. args. Alive = false; alert( f 2. args. Alive ); // 10 // 420 // true // false web-программирование (js)
Объекты в Java. Script Перекрытие свойств и методов в наследнике: function Animal() { this. Run = function (d) { this. Distance += d; }; }// Animal() function Fox() { this. Distance = 0; }// Fox() Fox. prototype = new Animal(); function Lazy. Fox() { this. Distance = 0; this. Run = function (d) { this. Distance += d / 2; }; }// Lazy. Fox() Lazy. Fox. prototype = new Animal(); var f 1 = new Fox(); var f 2 = new Lazy. Fox(); f 1. Run(100); f 2. Run(100); alert( f 1. Distance ); alert( f 2. Distance ); // 100 // 50 web-программирование (js)
Объекты в Java. Script Вызов функции в контексте объекта: function Foo (field, func) { alert( this[field] ); this. Space(); this[func](); }// Foo() var obj = { Name: 'Быстроног', Space: function() { alert (' '); }, Run: function() { alert( 'побежал' ); } }; Foo. call (obj, 'Name', 'Run'); Foo. apply (obj, ['имя', 'Run']); // Быстроног побежал // undefined побежал web-программирование (js)
Объекты в Java. Script Вызов функции в контексте объекта: var cat = { Type: 'котэ', Saying: function() { alert( this. Type + ' мяукает' ); } }; var dog = { Type: 'сцобак' }; cat. Saying(); // котэ мяукает cat. Saying. call (dog); // сцобак мяукает web-программирование (js)
Объекты в Java. Script Использование ключевого слова this: • внутри функции func (параметры) this = window • внутри метода obj. func (параметры) obj['func'] (параметры) this = obj • через apply / call func. apply (obj, [параметры]) func. call (obj, параметры) this = obj • внутри конструктора new Func (параметры) © javascript. ru this = новый объект web-программирование (js)
WEB PHP 09 - Синтаксис JavaScript 02.ppt