日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
當(dāng)jQuery遭遇CoffeeScript——妙不可言

雖然對(duì)ruby不太了解,但是看到CoffeeScript詩一般的代碼確實(shí)被怔住了,和jQuery之前給我的感覺是如此的相似——都是一個(gè)字,美,當(dāng)jQuery遭遇到CoffeeScript時(shí),會(huì)蹦出什么樣的火花呢?

當(dāng)我多年前初次接觸jQuery時(shí)我感覺我來到了程序員的天堂。它極大簡(jiǎn)化了DOM操作。函數(shù)式編程變得如此容易,盡管更多適合RIA開發(fā)的框架近年來在浮現(xiàn),但是我仍舊無法想象一個(gè)沒有jQuery的程序人生是多么的罪惡,相信你也有同感~

而來到CoffeeScript的世界,同樣的美妙故事再次上演。在寫了幾行代碼后我相信你將不會(huì)再想念原生的Javascript了。CoffeeScript包含了許多新特性,當(dāng)將它與jQuery結(jié)合時(shí),你會(huì)發(fā)現(xiàn)一片新天地。

推薦專題:jQuery從入門到精通

本文的目的就在于展示CoffeeScript和jQuery協(xié)同工作時(shí)美妙場(chǎng)景。

像老板一樣指揮你的代碼

CoffeeScript提供了一堆酷斃了的數(shù)組迭代方法。最好的事莫過于這不僅僅能工作于數(shù)組,還能工作于jQuery對(duì)象了。來行詩一般的代碼吧:

 
 
 
  1. formValues = (elem.value for elem in $('.input')) 

這行代碼將會(huì)被翻譯為如下的Javascript:

 
 
 
  1. var elem, formValues;  
  2. formValues = (function() {  
  3.   var _i, _len, _ref, _results;  
  4.   _ref = $('.input');  
  5.   _results = [];  
  6.   for (_i = 0, _len = _ref.length; _i < _len; _i++) {  
  7.     elem = _ref[_i];  
  8.     _results.push(elem.value);  
  9.   }  
  10.   return _results;  
  11. })(); 

老實(shí)說最初這樣寫代碼確實(shí)讓人提心吊膽的,但是一旦你開始擁抱CoffeeScript的魔法時(shí),你會(huì)愛上它的。

飛一般的方法綁定

在jQuery的回調(diào)中使用"=>"將會(huì)大大減省你手動(dòng)綁定方法到對(duì)象的麻煩。還是來看段代碼吧:

 
 
 
  1. object =  
  2.   func: -> $('#div').click => @element.css color: 'red' 

下面是編譯輸出的Javascript:

 
 
 
  1. var object;  
  2. var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };  
  3. object = {  
  4.   func: function() {  
  5.     return $('#div').click(__bind(function() {  
  6.       return this.element.css({  
  7.         color: 'red' 
  8.       });  
  9.     }, this));  
  10.   }  
  11. }; 

代碼中的@element指向了一個(gè)jQuery的對(duì)象,該對(duì)象是在其他地方指定的——比如object.element = $('#some_div').

任何使用"=>"所指定的回調(diào)函數(shù)都會(huì)自動(dòng)綁定到原來的對(duì)象上,沒錯(cuò),這很酷。

在2011年函數(shù)是這樣調(diào)用的

瞅一眼這個(gè):

 
 
 
  1. $.post(  
  2.   "/posts/update_title" 
  3.   new_title: input.val()  
  4.   id: something  
  5.   -> alert('done')  
  6.   'json' 

使用CoffeeScript,多個(gè)參數(shù)可以寫成多行來調(diào)用,逗號(hào)和大括弧是可選的,這使得一些jQuery中簽名比較長(zhǎng)的方法比如$.post() 和 $.animate() 等更加易讀。這兒還有一個(gè)例子:

 
 
 
  1. $('#thing').animate  
  2.   width: '+20px' 
  3.   opacity: '0.5' 
  4.   2000  
  5.   'easeOutQuad' 

很美味的Coffee不是嗎?要注意第一個(gè)參數(shù)是一個(gè)匿名的對(duì)象,你甚至可以省略調(diào)用函數(shù)的元括弧。

讓初始化來的更性感吧

我最初開始使用jQuery時(shí)我是這樣做頁面初始化的:

 
 
 
  1. $(document).ready(function() {  
  2.   some();  
  3.   init();  
  4.   calls();  
  5. }) 

CoffeeScript和新版的jQuery使得上面的代碼進(jìn)化的如此性感:

 
 
 
  1. $->  
  2.   some()  
  3.   init()  
  4.   calls() 

函數(shù)定義語法在CoffeeScript里本身已經(jīng)非??崃?,能在上面這些場(chǎng)合使用使得其更酷了。你會(huì)發(fā)現(xiàn)所有需要回調(diào)的函數(shù)調(diào)用在CoffeeScript中都是如此簡(jiǎn)單。

更多關(guān)于CoffeeScript請(qǐng)?jiān)L問其官網(wǎng)

注:已經(jīng)有一本關(guān)于CoffeeScript的書在七月發(fā)行了,其中有一整章的內(nèi)容是關(guān)于jQuery的。

原作:How CoffeeScript makes jQuery more fun than ever—— Stefan Buhrmester

翻譯:filod

轉(zhuǎn)載聲明:請(qǐng)注明原作者、翻譯者以及譯文鏈接。


網(wǎng)站欄目:當(dāng)jQuery遭遇CoffeeScript——妙不可言
轉(zhuǎn)載源于:http://www.dlmjj.cn/article/dpdjpgp.html