2014-01-09 96 views
1

最近我見過人們談論在Javascript中使用宏。我不知道這是什麼意思,查找MDN文檔後,我沒有找到答案。所以這導致我的問題...什麼是Javascript宏?

什麼是Javascript宏?他們如何/爲什麼使用?這是一種元編程嗎? (答案的例子和示例代碼將不勝感激)

+0

也許這:

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

通過sweet.js我們得到了擴大代碼運行在此之後? http://sweetjs.org/ – m59

+1

這是:http://sweetjs.org/。這是新的,人們開始談論它:) –

+0

可推測與任何其他語言的宏一樣的東西。 (從C預處理器宏到簡單的lisp宏系統到現代完全衛星相分離的宏系統,它的範圍非常廣泛)。 – delnan

回答

1

由於已張貼在評論中它是一個JavaScript的宏系統。

這是一種在「預處理階段」中定義文本替換的方法。所以你可以定義一個宏並在你的代碼中使用它,然後通過sweet.js運行它們,並且輸出將是帶有文本替換的代碼。

example

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

實際上,在ES6(它拼寫爲[y,x] = [x,y];')之前,您實際上*不能*將'swap'編碼爲JavaScript中的正常函數。 –