日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Dojo 之 面向对象

發(fā)布時(shí)間:2024/9/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dojo 之 面向对象 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

面向?qū)ο?/strong>三大特性:封裝、繼承、多態(tài)。在熟悉了Java/C#/C++這些高級(jí)面向?qū)ο笳Z言的語法結(jié)構(gòu)后,我們或多或少會(huì)對(duì)javascript腳本語言的面向?qū)ο蟾械揭恍┎贿m,function、prototype、call、apply……

為了消除這種對(duì)javascript面向?qū)ο笳Z法的不適,眾多js庫都構(gòu)建了更符合傳統(tǒng)OO編程思想的代碼框架,如prototype、mootools等等,引用mootools文檔中創(chuàng)建對(duì)象的例子

var?Animal?=?new?Class({
  initialize:?function(age){
  this.age?=?age;
  }
  });
  var?Cat?=?Animal.extend({
  initialize:?function(name,?age){
  this.parent(age);?//將調(diào)用Animal的initialize方法;
  this.name?=?name;
  }
  });
  var?myCat?=?new?Cat('Micia',?20);
  alert(myCat.name);?//顯示?'Micia'
  alert(myCat.age);?//顯示?20

Dojo作為一個(gè)強(qiáng)大的javascript工具箱,有它自己面向?qū)ο蟮拈_發(fā)方式,用declare解決了對(duì)象的創(chuàng)建和繼承的問題,文檔中的例子:

dojo.declare("my.classes.bar",?my.classes.foo,?{
  //?properties?to?be?added?to?the?class?prototype
  someValue:?2,
  //?initialization?function
  constructor:?function(){
  this.myComplicatedObject?=?new?ReallyComplicatedObject();
  },
  //?other?functions
  someMethod:?function(){
  doStuff();
  }
  );

declare的第一個(gè)參數(shù)是對(duì)象名稱,最后一個(gè)參數(shù)指定在這個(gè)對(duì)象里要添加的內(nèi)容,包括函數(shù)和屬性,寫個(gè)例子

dojo.declare("Apple",?null,?{
  price:?5,
  constructor:?function(weight)?{
  this.total?=?weight?*?this.price;
  },
  print:?function()?{
  alert("The?total?price?is?"?+?this.total);
  }
  }
  );
  var?myapple?=?new?Apple(10);
  myapple.print();?//輸出結(jié)果:"The?total?price?is?50"

上例通過declare創(chuàng)建了一個(gè)Apple對(duì)象,javascript本身沒有類的概念,可以使用對(duì)象本身來創(chuàng)建新的對(duì)象myapple,通過構(gòu)造函數(shù)的參數(shù)值計(jì)算蘋果的總價(jià),print函數(shù)輸出結(jié)果,非常形象的構(gòu)建了一個(gè)Apple“類”,非常容易理解。要注意的是,這里如果聲明默認(rèn)構(gòu)造函數(shù),"new Apple(10)"將直接執(zhí)行默認(rèn)構(gòu)造函數(shù),帶參數(shù)的構(gòu)造函數(shù)就被忽略了,并非C++中順序執(zhí)行。

注意dojo.declare第二個(gè)參數(shù),如果創(chuàng)建一個(gè)獨(dú)立的新對(duì)象,可以設(shè)為null,當(dāng)需要從其他一個(gè)或多個(gè)對(duì)象繼承時(shí),則為對(duì)象名稱,這樣就方便的實(shí)現(xiàn)了對(duì)象繼承。多個(gè)對(duì)象繼承,declare第二個(gè)參數(shù)為一數(shù)組,第一個(gè)元素為原型父對(duì)象,其他的為mixin對(duì)象,通過代碼來理解。

創(chuàng)建一個(gè)GreenApple對(duì)象,測試alert執(zhí)行順序!mixin對(duì)象的方法將覆蓋之前對(duì)象中的同名函數(shù),除非子對(duì)象也聲明了同名函數(shù)print。

?//輸出
  //"The?height?of?the?tree?is?undefined"
  //"Getting?a?green?apple"
  var?gapple?=?new?GreenApple();
  //輸出,覆蓋了Apple對(duì)象的print
  //"This?is?an?apple?tree"
  gapple.print();
  //"This?is?a?mixin?class"
  gapple.additional();
  dojo/_base/_loader/bootstrap.js有專門的mixin函數(shù),用于對(duì)象的拷貝,將一個(gè)創(chuàng)建好的對(duì)象拷貝到新的對(duì)象中?var?copy?=?dojo.mixin({},?new?Apple(2));
  copy.print();

print輸出結(jié)果是"The total price is 10",mixin參數(shù)一定是創(chuàng)建好的對(duì)象實(shí)例,否則出錯(cuò)!dojo.extend則可以將一個(gè)或多個(gè)對(duì)象的屬性、方法拷貝到一個(gè)原型上,通過prototype實(shí)現(xiàn)繼承,這是繼承的另外一種方式。

通過declare、mixin、extend,dojo給我們提供了一種方便的對(duì)象創(chuàng)建與擴(kuò)展機(jī)制,一般情況下夠用了,感覺還是比較方便,使用時(shí)也存在一些限制,翻翻源代碼就能理解。這里主要是要知道dojo是如何面向?qū)ο蟮?#xff0c;方便我們更好的理解dojo基礎(chǔ)功能,及dijit和 dojox,dojo最為強(qiáng)大還是它的widgets。本文涉及的js源碼:

mixin:dojo/_base/_loader/bootstrap.js

extend:dojo/_base/lang.js

declare:dojo/_base/declare.js

總結(jié)

以上是生活随笔為你收集整理的Dojo 之 面向对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲色图欧美日韩 | 欧美亚洲| 一级片在线免费观看 | www狠狠干 | 齐天大性床战铁扇公主 | 蜜臀一区二区三区 | 青青艹视频 | 日韩啪| 男同互操gay射视频在线看 | 精品视频在线一区 | 少妇人妻一区二区三区 | 日韩精品一区二区三区不卡在线 | 91呦呦 | 成人激情站 | 欧美大波大乳巨大乳 | h片在线观看网站 | 免费亚洲网站 | 久久露脸国语精品国产91 | 久久中文字幕人妻 | 日本免费精品 | 在线观看深夜视频 | 欧美在线一区二区 | 天天av天天爽| 91老师片黄在线观看 | 午夜天堂 | 影音先锋久久久 | 色屁屁一区二区三区 | missav | 免费高清av在线看 | 一区二区三区国产av | 91精品啪在线观看国产 | 亚洲v国产v | 在线观看视频福利 | 亚洲资源网 | 亚洲av成人精品一区二区三区在线播放 | 国产一级aa大片毛片 | 免费的毛片视频 | 亚洲影视在线 | 国内外成人在线视频 | 涩涩屋视频| 精品中文字幕在线观看 | 黄wwwww| 国产精品资源在线观看 | 亚洲国产欧美一区二区三区深喉 | 国内特级毛片 | 国产又大又粗又爽 | 国产精品视频一区二区三区在3 | 欧性猛交ⅹxxx乱大交 | 伊人激情 | 人人干av | aaaa黄色片 | 我不卡一区二区 | 91精品国产综合久久精品 | 素人一区二区 | 国产在线不卡视频 | 免费在线看污片 | jul023被夫上司连续侵犯 | 大香伊人久久 | 国产精久久久久 | 国产精品国产精品国产专区不卡 | 上原亚衣在线观看 | 奇米色综合| 视频福利在线观看 | 韩国av毛片| 综合网伊人 | 亚洲手机在线 | 黄色小视频在线观看 | 精品人妻无码一区二区三区蜜桃一 | 欧美人与禽猛交乱配视频 | 欧美色图激情小说 | 国产色在线,com | 黄色avv | 亚洲欧洲综合 | 91免费大片| 五级毛片 | 精品欧美乱码久久久久久1区2区 | 亚洲又粗又长 | 美女视频黄a视频全免费观看 | 黄色片免费在线观看 | 亚洲国产高清国产精品 | 青草福利在线 | 好吊妞精品视频 | 特级淫片裸体免费看冫 | 日韩av在线高清 | 葵司av在线| 91久久婷婷 | 国偷自产av一区二区三区麻豆 | 日本高清免费看 | 国产精品美女在线观看 | 日本一区视频在线 | 饥渴少妇勾引水电工av | 久操精品视频 | 国产99在线播放 | 中国国产bdsm紧缚捆绑 | 在线视频一区二区三区 | 15p亚洲| 寂寞少妇让水电工爽hd | 国产男女无遮挡猛进猛出 | 黄色一级大片在线观看 | av网址在线免费观看 |