ПредишенСледващото

По принцип функцията - за "рутинна", който може да бъде наречен от външен (или вътрешен, в случай на рекурсия) във връзка с функцията код. Тъй като програмата, функцията се състои от поредица от команди, наречени телесни функции. Стойностите могат да се подават на функцията, както и функцията връща стойност.

Функции - това не е процедурата. Функцията винаги връща стойност, както и процедурата може да се върне и да не може да се върне.

За да се върнете на стойност, различна от стойностите по подразбиране във функцията да е инструкция за връщане. което показва, че е необходимо да се върне. Функция без върне стойността по подразбиране. В случай на дизайнера. причинено от нова ключова дума. стойността по подразбиране - стойността на неговия параметър това. За други функции, стойността по подразбиране е неопределено.

Опциите за повикване функции се наричат ​​аргументи на функция. Аргументи се предават по функции стойност. Ако функцията се променя стойността на аргумента, тази промяна не засяга глобалната държавата или функцията обаждане. Обаче, позоваването на обекти - също така е стойността, и те се отличават с факта, че ако функция променя свойствата на даден обект чрез позоваване, тази промяна е видима отвън функцията, както е показано в примера по-долу.

Тази ключова дума не се отнася до функция, която се изпълнява в момента, така че трябва да се отнасят до Функция обекти по име, дори и функции в тялото.

Дефиниране на функции

Има различни начини за определяне на функция:

Името на функцията. Парам име на един аргумент на функцията. Функцията може да има до 255 аргументи. Инструкции изявления, които изграждат тялото на функцията.

Функция експресия (функция оператор)

експресията на функция е подобна на дефиницията на функцията и има същия синтаксис (за повече информация: функция оператор):

Името на функцията. Тя може да се пропусне, като в този случай функцията е анонимен. Парам име на един аргумент на функцията. Функцията може да има до 255 аргументи. Инструкции изявления, които изграждат тялото на функцията.

) "> Функция експресия стрелка (=>)

Забележка: Хотелът стрелки са експериментална технология, част от спецификацията ECMAScript 6 и все още не се поддържа от всички браузъри.

Парам име параметър. Ако параметърът не е налице, трябва да ги въведат (). Ако повече от един параметър, те също трябва да бъдат затворени в (). изявления или израз Ако някои инструкции, от които се нуждаят, за да влезете <>. За един експресионни скоби не са необходими, и в резултат на този израз се връща функцията (която е функция на х => 3 + 8 се връща 11).

Функция конструктор

Функционални обекти могат да бъдат създадени с помощта на новия оператор (както и всички други елементи):

Функция конструктор да се обадите, без оператор нов, ефектът ще е същият.

параметрите на функция

Забележка: Останалите параметри и настройки по подразбиране - експериментална технология, част от спецификацията на ECMAScript 6, а те все още не са придобили широка подкрепа сред браузърите.

настройките по подразбиране

Останалите опции

Синтаксисът на останалите параметри ви позволява да премине безкраен брой аргументи като масив. Подробности могат да бъдат намерени в останалите параметри.

Аргументите възразят

Във вътрешността на функцията за достъп до своите аргументи могат да бъдат чрез аргументите обект.

  • аргументи. Като обект на масив, съдържащ всички аргументи подадени текущата функция.
  • arguments.callee. Функцията изпълнен в настоящия момент.
  • arguments.caller. Функцията, която нарича текущата функция.
  • arguments.length. Броят на аргументи подадени на функцията.

методите за определяне на

Абсорбиращи смеси и инкубатори

Можете да определите привличат (методи за четене) и инкубатори (методи за промяна), за който и да е вграден или потребителски обект, който поддържа добавянето на нови свойства. Той използва обект буквално синтаксис.

Associates получат собственост на обект с функция, която ще се нарича при достъп до имота. Associates набор собственост на обекта с функция, която ще се нарича, когато се опитате да промените свойства.

методи дефиниция Синтаксис

Забележка: Определението на методи - е експериментална технология, част от спецификацията на ECMAScript 6, и тя все още не е получил широка подкрепа сред браузърите.

Тъй ECMAScript 6 може да определи собствените си методи, като се използват по-кратък синтаксис подобен на поглъщащите вещества и създателите. За повече подробности - виж Определете методи.

Вижте следните примери:

Функция, определен от конструктора на функция и еквивалентна на променливата умножи;

Anonymous функция експресия, приравнена към променливата умножи;

Функция израз на име FUNC_NAME. приравни към променливата умножи;

Във всички случаи, резултатът е почти същото, но има някои нюанси:

Име и длъжност на променливата, към който функцията се приравни - не е едно и също нещо. Името на функция не може да се променя, но променлива, която приравни към функция, е възможно да се получи различно значение. В случай на функция експресия с името, името може да се използва само в рамките на самата функция. Когато се опитате да го използвате извън грешка (и това да е било обявено за променлива със същото име, ще бъде върната на неопределена). Например:

изразяване Името fukntsii се появява, ако Сериализирането функция чрез метод Function.toString.

И тук е променлива, към който е приравнен на функцията, ограничен само от собственото си поле, което включва зоната, където е обявен функцията.

  1. Ако функцията е определена с помощта на функцията за изразяване (функция израз), неговото име е достъпна само в рамките на самата функция.
  2. Ако функцията е декларирана (декларация функция), името му е на разположение на обхвата, в който се определя функцията.

Така че в действителност функцията няма име, променлива не може да се използва в рамките на анонимен функция. Например, следния пример ще хвърли грешка:

Функция определя от експресията на функция наследява настоящия обхват, т.е. създава верига. Но функция е създадена с конструктора на функцията. не наследи нещо различно от глобален обхват (той ще наследи всички характеристики на всички).

  • Тя става част от изразяването
  • Това не е "източник елемент" функция, или файл. Оригинален елемент - това не е вложен във функция или скрипт:

Определяне на функции, в зависимост от условията

Функции могат да бъдат определени в зависимост от условията чрез употреба функция (разрешения разширяването на ECMA-262 стандарт, издание 3) Функция или дизайнер. Моля, имайте предвид, че тези инструкции са забранени в ES5 строг. В допълнение, тази възможност по различен начин се държи в различни браузъри, така че не се разчита на него.

В кода под нулата функция никога не е определена и не може да се нарече, защото "ако (0)" винаги се разглежда като фалшив:

Ако промените състоянието на "ако (1)", нула функция ще бъде определена.

Пример: Връща форматиран номер

Тази функция връща низ, съдържащ броя на предварително определен брой нули пред него:

Пример: ако има функция

Възможно е да се определи дали има функция с помощта на оператора на typeof. Следващият пример проверява дали функцията прозорец обект noFunc. Ако има, то тя се нарича; ако не е, то се извършва друго действие.

спецификация

Свързани статии

Подкрепете проекта - споделете линка, благодаря!