Вивчаємо CoffeeScript

Всім привіт! У цій статті ми поговоримо про те, як створювати та використовувати функції в мові програмування coffeescript .
Отже, давайте напишемо функцію привітання спочатку наjavascript, а потім наcoffeescript, щоб ви одразу побачили різницю.
var greet; greet = function(name) return 'Hello, ' + name + '!'; >;
Та сама функція вcoffeescriptвиглядатиме ось так:
Як бачите, все значно простіше. Спочатку у круглих дужках йдуть аргументи, потім стрілочка, потім тіло функції. Якщо ж вам не потрібні аргументи, то ви взагалі можете не писати їх, і тоді функція буде виглядати так:
greet = -> 'Hello, Sergey!'
У скомпілюваномуjavascriptви можете побачити, що функція завжди повертає значення останнього виразу. Тобто. у нашому випадку з привітанням вона виглядатиме так:
var greet; greet = function(name) return 'Hello, ' + name + '!'; >;
Хоча ми ніде не писали ключового слова return уcoffeescript! Давайте тепер змінимо функцію вcoffeescriptі подивимося, що вийде в скомпільованомуjavascript, щоб це все було наочніше
greet = (name) -> do updateSomething do changeSomething 'Hello, #!' в процесSomething
У результаті отримаємо таке:
var greet; greet = function(name) do updateSomething(); do changeSomething(); 'Hello, '+ name + '!'; Return processSomething(); >;
Насправді, це ні на що не впливає, ви можете просто ігнорувати це повернення, якщо воно вам не потрібне. Однак, якщо все-таки вам дуже потрібно прибрати його зі скомпільованого коду, просто додайте порожнійreturnв кінці.
Природно, ви можете прописувати стандартні значення для аргументів так само, як іjavascript
greet = (name = 'Sergey') -> 'Hello, #!'
Тепер поговоримо про те, що робити, якщо наша функція має набувати невизначеної кількості аргументів. Уjavascriptдля цього використовується об'єктarguments, уcoffeescriptвсе набагато простіше.
normalize = (length, vectors. ) -> 'Something here. '
Як ви можете бачити, все, що нам потрібно зробити, це просто додати три точки, що означатиме, що всі наступні аргументи після другого будуть записані в масивvectors.
Тепер про області видимості: var писати не потрібно, всередині функції будь-яка змінна вважається локальною в тому випадку, якщо змінна з таким ім'ям не була оголошена раніше.
outer = 10 func = -> outer = 10 inner = 10 return
В результаті отримаємо наступне:
var func, outer; outer = 10; func = function() var inner; outer = 10; inner = 10; >;
Викликати функції можна без круглих дужок. При вкладених дзвінках параметри обертаються праворуч наліво.
show() // show() do show // show() show update object // show(update(object))
Тепер розглянемо анонімні функції, що самовикликаються. Як ви вже знаєте, всі функції вcoffeescriptанонімні і все, що вам потрібно зробити, щоб отримати анонімну функцію, що самовикликається, як у мовіjavascript, це написати попереду ключове словоdo
do -> do something
В результаті отримаємо наступне:
Тож на цьому все! Дякую за увагу!
Додайте до мене у друзіВКонтакте: http://vk.com/myrusakov. Якщо Ви хочете дати оцінку мені та моїй роботі, то напишіть її вмоїй групі: http://vk.com/rusakovmy.
Запропонуйте цю статтю друзям:
Якщо Вам сподобався сайт, розмістіть посилання на нього (у себе на сайті, на форумі, в контакті):
Вона виглядає ось так: