CoffeeScript风格代码
coffeeScript风格的代码
cc.Class {
extends: cc.Component
properties: {
# foo:
# default: null # The default value will be used only when the component attaching
# to a node for the first time
# type: cc
# serializable: true # [optional], default is true
# visible: true # [optional], default is true
# displayName: 'Foo' # [optional], default is property name
# readonly: false # [optional], default is false
}
update: (dt) ->
# do your update here
}
Coffee大量借鉴了Ruby和Python的语法
原始的coffeeScript写法
# 赋值:
number = 42
opposite = true
# 条件:
number = -42 if opposite
# 函数:
square = (x) -> x * x
# 数组:
list = [1, 2, 3, 4, 5]
# 对象:
math =
root: Math.sqrt
square: square
cube: (x) -> x * square x
# Splats:
race = (winner, runners...) ->
print winner, runners
# 存在性:
alert "I knew it!" if elvis?
# 数组 推导(comprehensions):
cubes = (math.cube num for num in list)
输出的JavaScript语法
var cubes, list, math, num, number, opposite, race, square,
__slice = [].slice;
number = 42;
opposite = true;
if (opposite) {
number = -42;
}
square = function(x) {
return x * x;
};
list = [1, 2, 3, 4, 5];
math = {
root: Math.sqrt,
square: square,
cube: function(x) {
return x * square(x);
}
};
race = function() {
var runners, winner;
winner = arguments[0], runners = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
return print(winner, runners);
};
if (typeof elvis !== "undefined" && elvis !== null) {
alert("I knew it!");
}
cubes = (function() {
var _i, _len, _results;
_results = [];
for (_i = 0, _len = list.length; _i < _len; _i++) {
num = list[_i];
_results.push(math.cube(num));
}
return _results;
})();
但是es6应该会成为主流,coffeeScript会被慢慢废弃
学习如春起之苗,不见其增日有所长。辍学如磨刀之石,不见其损年有所亏。