2014-01-09 4 views
1

Недавно я видел, как люди говорят об использовании макросов в Javascript. Я понятия не имею, что это значит, и после просмотра документации по MDN я пришел без ответа. Так что это приводит меня к моему вопросу ...Что такое макрос Javascript?

Что такое макросы Javascript? Как/почему они используются? Является ли это формой метапрограмм? (Ответы на примеры и пример кода будут оценены очень сильно)

+0

Может быть, это? http://sweetjs.org/ – m59

+1

Это все: http://sweetjs.org/. Это новое, и люди начинают говорить об этом :) –

+0

Предположительно то же самое, что и макросы на любом другом языке. (Это, по общему признанию, довольно широкий диапазон: от макросов препроцессора C до простых макросов Lisp до современных полностью гигенных макросистем с разделением фаз). – delnan

ответ

1

Как было опубликовано в комментариях, это макросистема для javascript.

Это способ определения замены текста на этапе предварительной обработки. Таким образом, вы должны определить макрос и использовать его в своем коде, а затем запустить их как через sweet.js, так и на выходе будет код с заменой текста.

example:

macro swap { 
    rule { ($a, $b) } => { 
    var tmp = $a; 
    $a = $b; 
    $b = tmp; 
    } 
} 

var a = 10; 
var b = 20; 

swap (a, b) 

После запуска этого через sweet.js мы получаем расширенный код:

var a$1 = 10; 
var b$2 = 20; 

var tmp$3 = a$1; 
a$1 = b$2; 
b$2 = tmp$3; 
+0

В чем преимущество над кодировкой swap (x , y) как нормальная функция? – dandavis

+0

Вы на самом деле * не можете * закодировать 'swap' как нормальную функцию в JavaScript до ES6 (где написано' [y, x] = [x, y]; ') –

Смежные вопросы