CoffeeScript #9
نویسنده: وحید محمدطاهری
تاریخ: ۱۳۹۴/۰۴/۲۲ ۱۹:۵۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
همانطوری که در قسمت قبل در تابع Math.max مشاهده کردید، با استفاده از ... آرایه را به عنوان آرگومان چندگانه به تابع max ارسال کردیم. در پشت صحنه CoffeeScript برای اطمینان از ارسال کامل آرایه به تابع max، برای فراخوانی از تابع ()apply استفاده میکند. ما نیز میتوانیم از این ویژگی در جای دیگری استفاده کنیم.
Log =
log: ->
console?.log(arguments...) var Log;
Log = {
log: function() {
return typeof console !== "undefined" && console !== null ? console.log.apply(console, arguments) : void 0;
}
}; Log =
logPrefix: "(App)"
log: (args...) ->
args.unshift(@logPrefix) if @logPrefix
console?.log(args...) var Log,
slice = [].slice;
Log = {
logPrefix: "(App)",
log: function() {
var args;
args = 1 <= arguments.length ? slice.call(arguments, 0) : [];
if (this.logPrefix) {
args.unshift(this.logPrefix);
}
return typeof console !== "undefined" && console !== null ? console.log.apply(console, args) : void 0;
}
}; طبق ساختار syntax ایی که در قسمتهای قبل با آن آشنا شدیم، or به جای || و and به جای && استفاده شده و سبب خوانایی بیشتر کد نوشته میشوند؛ در صورتیکه هر دو روش نتایج یکسانی را تولید میکنند.
همچنین به جای استفاده از == از is و برای =! از isnt استفاده میشود.
string = "migrating coconuts" string == string # true string is string # true
hash or= {} hash || (hash = {}); hash ?= {} if (typeof hash !== "undefined" && hash !== null) {
hash;
} else {
hash = {};
};