Coffee的函式

2gua發表於2012-07-04

接上篇:CoffeeScript的Sublime Text 2開發環境配置 http://www.ituring.com.cn/article/details/4263

一. 定義一個函式

Coffee中定義一個函式,很簡單,比如:

#hi.coffee
#定義一個匿名函式,用“->”代表函式定義動作
-> "Hello, 函式!"

#do是執行一個函式
console.log do -> "Hello, 函式!"

你用coffee -p hi.coffee試試,輸出JavaScript程式碼,這就是你定義的函式:

(function() {
  (function() {
    return "Hello, 函式!";
  });

  console.log((function() {
    return "Hello, 函式!";
  })());
}).call(this);

-p:列印輸出Coffee程式碼編譯成的JavaScript程式碼,很方便很有用。

coffee hi.coffee執行輸出:

Hello, 函式!

再來定一個複雜點的函式例子:

#hi.coffee
greeting = (var1, var2) -> "Hello, #{var1}, #{var2}!"
console.log greeting '大胖', '小問'

coffee -p hi.coffee輸出:

(function() {
  var greeting;

  greeting = function(var1, var2) {
    return "Hello, " + var1 + ", " + var2 + "!";
  };

  console.log(greeting('大胖', '小問'));
}).call(this);

coffee hi.coffee執行輸出:

Hello, 大胖, 小問!

(subject)是引數列表, #{subject}叫作“字串插值法”。

二. arguments物件

JavaScript中的arguments物件,在Coffee中仍能果斷使用。

#hi.coffee
greeting = -> "Hello, #{ arguments[0]}, #{ arguments[1]}!"
console.log greeting '大胖', '小問'

coffee -p hi.coffee輸出:

(function() {
  var greeting;

  greeting = function() {
    return "Hello, " + arguments[0] + ", " + arguments[1] + "!";
  };

  console.log(greeting('大胖', '小問'));
}).call(this);

coffee hi.coffee執行輸出:

Hello, 大胖, 小問!

額外點出:CoffeeScript中的“is”和“==”都會編譯為JavaScript中的“===”。Coffee中摒棄了JavaScript中 “==”。

相關文章