成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

怎樣用Javascript定義一個(gè)類

開發(fā) 前端
很多人都寫過這樣的代碼,對,沒錯(cuò),就是如下代碼,清晰的不能再清晰了,就是一個(gè)關(guān)鍵字 function,然后定義一個(gè)方法名,方法名后緊跟一對括號。如果你在項(xiàng)目中寫過這樣的代碼,那么祝賀你,你可以不費(fèi)任何吹毛之力,就能一口氣讀完這篇博文了。

其實(shí)Javascript中沒有類這個(gè)定義,但是有類這個(gè)概念。很多人都寫過這樣的代碼,對,沒錯(cuò),就是如下代碼,清晰的不能再清晰了,就是一個(gè)關(guān)鍵字 function,然后定義一個(gè)方法名,方法名后緊跟一對括號。如果你在項(xiàng)目中寫過這樣的代碼,那么祝賀你,你可以不費(fèi)任何吹毛之力,就能一口氣讀完這篇博文了。

  1. function Print() {  
  2.      ……  
  3.  } 

當(dāng)我們在寫c#代碼,焦頭爛額,無從下手的時(shí)候,至少我們還是可以厚著臉皮在老板的面前,敲出華麗的 class ***{},是的,沒錯(cuò),就這幾個(gè)字符。殊不知這這幾個(gè)字符體現(xiàn)出來的境界。說淺些,我會(huì)敲鍵盤寫代碼,說深些,我有可能理解了面向?qū)ο蟮木幊蹋辽傥視?huì)定義一個(gè)類。是這樣的,c#中定義一個(gè)類是用class。

有一天,老板變態(tài)了,讓我用Javascript來定義一個(gè)類,我無從下手呀,我平時(shí)都是用$("."),$("#")的人物呀,思考良久,我還模糊的記的document.getElementById("")這個(gè)東西,但是好像與Javascript的類扯不上關(guān)系呀。怎么辦?問了google問百度啊,***在一個(gè)角落,找到了定義Javascript類的E文。仔細(xì)一閱,難道這是一個(gè)坑嗎?明明用function定義了一個(gè)方法,活生生的把它說成一個(gè)類,反復(fù)幾次Google百度后,有點(diǎn)懷疑了,難道Javascript中定義一個(gè)類,真的是用function?其實(shí)沒錯(cuò),在Javascript中,定義一個(gè)類是用fucntion() ***{}。不管是在學(xué)校的菜鳥,還是國外的***程序員,在這件事上是平等的,想定義一個(gè)Javascript的類,就必須得先敲下function ***(){}。

在定義Javascript類上,表現(xiàn)形勢上大家雖然是平等的,都是用function ***(){}。但實(shí)質(zhì)上,確是蘊(yùn)含著大量的學(xué)問。也許有些朋友到目前為止,是不是感覺我說的太簡單了,那我們就在這個(gè)function上玩點(diǎn)花樣。

  1. function Dog(category, name, age) {  
  2.     this.Category = category;  
  3.     this.Name = name;  
  4.     this.Age = age;  

一個(gè)Javascript類就這樣定義完成了,現(xiàn)在就可以自豪的說,我會(huì)面向?qū)ο蟮氖址ň幎↗avascript代碼了。

類定義好了,那我們怎么樣來用這個(gè)類呢?其實(shí)用法和C#的用法很像。

  1. var dog01 = new Dog("狗類""土狗", 2);  
  2. var dog02 = new Dog("狗類""黃狗", 5); 

有些朋友要拍磚了,這么簡單的東西,都拿出來說,那我們不妨再來進(jìn)階一下。我上邊的代碼,實(shí)例化了兩個(gè)對象,一個(gè)是dog01,dog01下邊那個(gè)是dog02。因?yàn)閐og01的Cateogry太口語化了,我要修改為dog01.Categry = '犬類',這樣聽起來是不是舒服多了,這是一個(gè)很簡單的事,我們僅僅需要為dog01的Cateogry重賦值就可以了。我們修改了dog01的Cateory, dog02的Category會(huì)跟著變嗎?答案是肯定的,不會(huì)變,如果有變,肯定有鬼。那我們有沒有方法讓dog01,dog02這些對象的Cateogry屬性共用起來呢?也就是說當(dāng)我修改了Category屬性,不管是dog01,還是dog02都跟一樣的變,我們不妨來這樣寫寫。

  1. function Dog(name,age) {  
  2.     this.Name = "";  
  3.     this.Age = "";  
  4. }  
  5. Dog.prototype.Category = "狗類";  
  6. var dog01 = new Dog("土狗",2);  
  7. var dog02 = new Dog("黃狗",5);  
  8. alert(dog01.Category);  
  9. alert(dog02.Category);  
  10. Dog.prototype.Category = "犬類";  
  11. alert(dog01.Category);  
  12. alert(dog02.Category); 

當(dāng)我們修改Dog.prototype.Category的時(shí)候,dog01,dog02的屬性都跟著神奇的變了。是不是有點(diǎn)類似于C#中的static。

當(dāng)你已經(jīng)耐心的看到這兒的時(shí)候,我相信對朝九晚五的寫$("."),$("#")的朋友指明了一個(gè)方向。如果我寫的這些你已經(jīng)知道了,你可以去看看阮一峰寫的 Javascript定義類的幾種方法:http://www.ruanyifeng.com/blog/2012/07/three_ways_to_define_a_javascript_class.html

原文鏈接:http://www.cnblogs.com/xcj26/archive/2013/04/08/3006023.html

責(zé)任編輯:林師授 來源: 博客園
相關(guān)推薦

2022-03-07 09:20:00

JavaScripThree.jsNFT

2024-11-14 13:19:21

Docker容器開發(fā)

2019-12-26 12:47:10

BashLinux命令

2019-11-08 15:10:59

BashBash編程Linux

2019-11-20 12:30:21

Python編程語言語音識別

2018-04-11 09:30:16

Linux硬盤分區(qū)parted

2014-06-20 09:27:27

BAT移動(dòng)互聯(lián)網(wǎng)

2013-02-26 10:05:16

vmwareAWSOpenStack

2017-08-17 14:38:39

JavaAbstract抽象

2016-12-22 10:44:30

數(shù)據(jù)分析找對象大數(shù)據(jù)

2009-12-02 16:08:51

linux系統(tǒng)

2009-06-01 09:34:22

2015-08-27 10:02:59

2011-01-21 13:41:09

Sendmail

2012-07-17 17:05:55

JavaScript

2021-06-25 10:38:05

JavaScript編譯器前端開發(fā)

2010-04-16 10:38:49

CPU消耗

2009-11-26 17:03:24

Open Suse打印

2020-11-30 06:20:13

javascript

2014-03-06 14:39:58

點(diǎn)贊
收藏

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

主站蜘蛛池模板: 四虎av电影 | www.99热.com | 操操日 | 精品免费 | 91精品在线播放 | 一级国产精品一级国产精品片 | 久久精品亚洲精品国产欧美 | 在线观看免费av网 | 亚洲视频a| 美女视频黄的免费 | 一区二区三区视频在线观看 | 成人深夜福利 | 亚洲精品免费看 | 中文字幕在线一区二区三区 | 久久精品欧美电影 | 亚洲天堂一区 | 欧美伊人久久久久久久久影院 | 亚洲综合无码一区二区 | 午夜小视频在线观看 | 久久高清精品 | 不卡一区| 欧美一区二区在线观看 | 欧美激情精品久久久久久变态 | 91精品中文字幕一区二区三区 | 在线成人免费视频 | 精品久久久久久久久久久 | 一区二区三区四区免费视频 | 国产精品美女久久久 | 亚洲男人的天堂网站 | 久久九九色 | 老司机成人在线 | 成人av看片 | 九九热精品视频在线观看 | 欧美国产在线一区 | 影音先锋中文字幕在线观看 | 黑人巨大精品 | 精品乱码久久久久 | 日韩精品不卡 | 欧美一区二区二区 | 成人午夜电影在线观看 | 欧美一区二区三区四区五区无卡码 |