偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

當(dāng)jQuery遭遇CoffeeScript——妙不可言

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

雖然對(duì)ruby不太了解,但是看到CoffeeScript詩(shī)一般的代碼確實(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)一片新天地。

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

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

像老板一樣指揮你的代碼

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

  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í)我是這樣做頁(yè)面初始化的:

  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)注明原作者、翻譯者以及譯文鏈接。

【編輯推薦】

  1. Web開發(fā)者愛不釋手的18款超贊jQuery插件
  2. jQuery給力插件大閱兵
  3. 25個(gè)超棒的jQuery日歷和日期選取插件
  4. 從零開始學(xué)習(xí)jQuery之讓頁(yè)面動(dòng)起來
  5. 分享10個(gè)超炫的jQuery網(wǎng)站
責(zé)任編輯:陳貽新 來源: filod
相關(guān)推薦

2022-08-04 06:57:54

CSS拼圖游戲

2013-09-10 09:31:43

云計(jì)算成本云計(jì)算運(yùn)維成本云計(jì)算現(xiàn)金流

2012-03-21 21:38:27

蘋果

2017-10-13 22:54:10

服務(wù)器

2023-04-13 21:59:44

ChatGPT聊天機(jī)器人

2011-03-22 17:29:41

LAMPWindowsAMP

2015-10-23 09:23:38

數(shù)據(jù)中心經(jīng)濟(jì)移民

2015-04-23 09:34:18

CoffeeScripJavaScript開

2010-07-26 15:32:08

Perl腳本語言

2010-07-26 15:55:51

Perl腳本語言

2013-07-23 14:55:31

設(shè)計(jì)師HTML5

2011-08-03 11:08:27

HTML 5

2017-06-01 14:13:15

圖片優(yōu)化PSSEO

2010-04-23 09:16:13

電信云CTO

2009-04-21 18:52:39

2011-04-18 09:03:22

2010-05-05 17:27:04

Windows PhoOffice Mobi

2014-04-03 16:50:28

CactiNagios監(jiān)控

2010-10-26 11:22:26

2011-08-04 10:56:44

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)