CoffeeScript
CoffeeScript ([’kɔ:fɪ skrɪpt]; кофі скрипт) — мова програмування, що транслюється в JavaScript. CoffeeScript додає синтаксичний цукор у дусі Ruby, Python і Haskell для того, щоб покращити читання коду і зменшити його розмір. В середньому для виконання однакових дій на CoffeeScript потрібно в два рази менше рядків, ніж JavaScript. JavaScript код, який компілюється з CoffeeScript повністю проходить перевірку JavaScript Lint [Архівовано 4 липня 2012 у Wayback Machine.]. ІсторіяСпочатку компілятор був написаний на Ruby, але у версії 0.5, яка вийшла 21 лютого 2010, компілятор був реалізований на CoffeeScript. CoffeeScript був радо прийнятий в Ruby спільноті. В вебфреймворку Ruby on Rails версії 3.1, CoffeeScript замінив JavaScript. ПрикладиЗмінніCoffeeScript: age = 2
male = true
name = "Христина"
JavaScript: var age = 2,
male = true,
name = "Христина";
ФункціїCoffeeScript: say = (speech) ->
alert speech
say("Привіт всім!")
JavaScript: var say = function(speech) {
alert(speech);
};
say("Привіт всім!");
Класи і об'єктиCoffeeScript: class Human
constructor : (@name) ->
class Baby extends Human
say : (msg) -> alert "#{@name} говорить '#{msg}'"
sayHi : -> @say('Уууу!')
matt = new Baby("Марія")
matt.sayHi()
Аналог на JavaScript (саме аналог, а не результат компіляції): function Human(name)
{
this.name = name;
}
function Baby(name)
{
Human.call(this, name);
}
Baby.prototype = Object.create(Human.prototype);
Baby.prototype.say = function(msg)
{
alert(this.name + ' говорить ' + msg);
};
Baby.prototype.sayHi = function()
{
this.say('Уууу!');
};
Baby.prototype.constructor = Baby;
var matt = new Baby("Олена");
matt.sayHi();
Примітка: в JavaScript при роботі з «класами» (конструктор + прототипи + функції для наслідування і змішування) часто використовують обгортки (MooTools, AtomJS та інші). Аналогія на JavaScript з класовою обгорткою AtomJS: var Human = Class({
initialize : function(name) {
this.name = name;
}
});
var Baby = Class({
Extends : Human,
say : function(msg) {
alert(this.name + ' говорить ' + msg);
},
sayHi : function() {
this.say('Уууу!');
}
});
var matt = new Baby("Олена");
matt.sayHi();
Приклад класу CoffeeScript з різними видами властивостей. class Test
say = (msg) -> alert msg # приватний метод
@echo = (msg) -> console.log msg # статичний метод, записаний в Test
setHi : (msg) -> # динамічний метод, записаний в Test.prototype
@hi = -> msg # динамічний метод, записаний в екземпляр Test
Цікаві фактиТак як компілятор CoffeeScript написаний на самому CoffeeScript, ви можете випробувати його онлайн на офіційному сайті, при цьому, на відміну від Try Ruby [Архівовано 23 липня 2012 у Wayback Machine.], асинхронних запитів відбуватися не буде, оскільки код компілюється безпосередньо в вашому браузері. Див. такожПриміткиЛітература
Посилання
Information related to CoffeeScript |