CoffeeScript 當(dāng)函數(shù)括號(hào)不可選

2022-06-29 17:06 更新

當(dāng)函數(shù)括號(hào)不可選

問(wèn)題

你想要調(diào)用一個(gè)沒(méi)有參數(shù)的函數(shù),但不希望使用括號(hào)。

解決方案

不管怎樣都使用括號(hào)。

另一個(gè)方法是使用do表示法,如下:

notify = -> alert "Hello, user!"
do notify if condition

編譯成JavaScript則可表示為:

var notify;
notify = function() {
    return alert("Hello, user!");
};
if (condition) {
    notify();
}

討論

這個(gè)方法與Ruby類似,在于都可以不使用括號(hào)來(lái)完成方法的調(diào)用。而不同點(diǎn)在于,CoffeeScript把空的函數(shù)名作為函數(shù)的指針。這樣以來(lái),如果你不賦予一個(gè)方法任何參數(shù),那么CoffeeScript將無(wú)法分辨你是想要調(diào)用函數(shù)還是把它作為引用。

這是好是壞呢?其實(shí)只是有所不同。它創(chuàng)造了一個(gè)意想不到的語(yǔ)法實(shí)例——括號(hào)并不總是可選的——但是它能讓你流利地使用名字來(lái)傳遞和接收函數(shù),這對(duì)于Ruby來(lái)說(shuō)是難以實(shí)現(xiàn)的。

對(duì)于CoffeeScript來(lái)說(shuō),使用do表示法是一個(gè)巧妙的方法來(lái)克服括號(hào)使用恐懼癥。盡管有部分人寧愿在函數(shù)調(diào)用中寫(xiě)出所有括號(hào)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)