W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在js中,普遍會使用閉包實現(xiàn)各種事件的handler或封裝模塊,以下是CoffeeScript對這一普遍模式的實現(xiàn)
closure = do ->
_private = "foo"
-> _private
console.log(closure()) #=> "foo"
do關(guān)鍵詞可以產(chǎn)生一個Immediate Function,下面是對應(yīng)js代碼
var closure;
closure = (function() {
var _private;
_private = "foo";
return function() {
return _private;
};
})();
閉包中經(jīng)常需要綁定this的值給閉包的私有變量,CoffeeScript使用特殊的=>語法省去了這個麻煩
@clickHandler = -> alert "clicked"
element.addEventListener "click", (e) => @clickHandler(e)
使用=>生成函數(shù),可以看到生成代碼中會加上對this的綁定
var _this = this;
this.clickHandler = function() {
return alert("clicked");
};
element.addEventListener("click", function(e) {
return _this.clickHandler(e);
});
這里CoffeeScript對于this有簡單的別名@
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: