亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于JavaScript技術(shù)實(shí)現(xiàn)的面向?qū)ο缶幊谭椒?/h1>
        2017-02-20 09:16:19宋文瑞
        數(shù)碼世界 2017年2期
        關(guān)鍵詞:動(dòng)物類編程技術(shù)編程語(yǔ)言

        宋文瑞

        遼寧錦州渤海大學(xué)信息科學(xué)與技術(shù)學(xué)院

        基于JavaScript技術(shù)實(shí)現(xiàn)的面向?qū)ο缶幊谭椒?/p>

        宋文瑞

        遼寧錦州渤海大學(xué)信息科學(xué)與技術(shù)學(xué)院

        本文針對(duì)JavaScript技術(shù)實(shí)現(xiàn)的面向?qū)ο蟮木幊虒?shí)現(xiàn)方法,JavaScript編程技術(shù)作為一種腳本式函數(shù)語(yǔ)言嵌入到網(wǎng)頁(yè)的頁(yè)面中,在多年來,JavaScript編程技術(shù)是否具備面向?qū)ο蟮南嚓P(guān)特性和要素,這種軟件編程技術(shù)長(zhǎng)期處于具有面向?qū)ο筇匦缘倪吘壭允欠浅D:模疚耐ㄟ^使用簡(jiǎn)單的程序示例,來講述JavaScript編程技術(shù)回歸面向?qū)ο缶幊痰谋疽?,本文將從編程技術(shù)語(yǔ)法角度講述JavaScript技術(shù)是一種擁有面向?qū)ο筇匦?。JavaScript編程技術(shù)同其他高級(jí)語(yǔ)言C++和Java語(yǔ)言在語(yǔ)法上相似,為了深入了解JavaScript對(duì)象與函數(shù)是學(xué)習(xí)JavaScript編程技術(shù)的基礎(chǔ)。下面通過分析高級(jí)語(yǔ)言的面向?qū)ο蟮膸追N特性:封裝性,繼承性,多態(tài)性,基于JavaScript語(yǔ)言實(shí)現(xiàn)的高級(jí)語(yǔ)言特性。本文通過JavaScript代碼片段實(shí)例,剖析JavaScript技術(shù)在網(wǎng)站開發(fā)中的編程與應(yīng)用,在實(shí)際編程中使用JavaScript對(duì)象編程進(jìn)行舉例說明。本文基于JavaScript技術(shù)實(shí)現(xiàn)的面向?qū)ο蠓椒ǖ囊恍┨剿?,并給出了相關(guān)分析實(shí)例,展示了JavaScript編程技術(shù)在網(wǎng)頁(yè)編程中的優(yōu)越性。

        JavaScript 面向?qū)ο?編程語(yǔ)言 封裝性 繼承性 多態(tài)性

        1 引言

        目前,JavaScript編程技術(shù)是一種面向?qū)ο蠹夹g(shù)開發(fā)的高級(jí)編程語(yǔ)言,此高級(jí)編程語(yǔ)言可以被嵌入到網(wǎng)頁(yè)的頁(yè)面的文件里。通過JavaScript編程技術(shù)可以做到響應(yīng)用戶點(diǎn)擊或者觸發(fā)的事件空間(例如:form表單的輸入情況、表單按鈕控件點(diǎn)擊情況),JavaScript編程技術(shù)和Java編程語(yǔ)言很類似,但也有本質(zhì)上的區(qū)別,Java編程語(yǔ)言是一種比JavaScript技術(shù)更加復(fù)雜面向?qū)ο缶幊陶Z(yǔ)言,而JavaScript則是相當(dāng)簡(jiǎn)單而且容易了解的編程語(yǔ)言。JavaScript只是注重程序開發(fā)的相關(guān)技巧,所以,許多Java編程語(yǔ)言的很多特性在JavaScript編程技術(shù)中并不支持。

        JavaScript編程技術(shù)也是面向?qū)ο筮M(jìn)行編程的思想。但是,很多程序員并不理解這一點(diǎn)是如何實(shí)現(xiàn)面向?qū)ο缶幊痰乃枷?。在JavaScript編程技術(shù)中的面向?qū)ο蠓譃閮煞N情況:其一情況是可以稱為面向“普通對(duì)象”編程的思想,在JavaScript中存在的普通對(duì)象,例如:數(shù)字對(duì)象、布爾對(duì)象、日期對(duì)象、Number對(duì)象和各種用戶自定義的某個(gè)對(duì)象(如:方括號(hào)、花括號(hào)和圓括號(hào))等等。其二情況是稱為面向“方法對(duì)象”編程的思想,在編程中通常定義為function函數(shù)。令人奇怪的是:function被稱為方法,它又怎么成為面向的對(duì)象編程呢?在JavaScript編程技術(shù)中,function方法確實(shí)被當(dāng)成對(duì)象來看待。

        在傳統(tǒng)面向?qū)ο蟮木幊讨?,存在非常重要的幾個(gè)概念,本文將列出其中的兩個(gè)概念分別問:類和實(shí)例兩個(gè)概念。類則定義了相關(guān)事物存在公共的屬性和方法的集合;而實(shí)例則表示該類的具體實(shí)例對(duì)象是如何實(shí)現(xiàn)。在高級(jí)編程語(yǔ)言中面向?qū)ο缶幊逃腥齻€(gè)重要的特性分別為:封裝、繼承和多態(tài)。在JavaScript的編程實(shí)踐中,表面上并沒有高級(jí)編程語(yǔ)言的全部特性,尤其是:封裝、繼承和多態(tài)三個(gè)特性并不存在,而這些優(yōu)良的特性真的不在JS中存在嗎?

        由于JavaScript編程語(yǔ)言是基于對(duì)象編程OB(Object-Based)實(shí)現(xiàn)的,而非面向?qū)ο缶幊蘋O(Object-Oriented)實(shí)現(xiàn)的,雖然JavaScript編程技術(shù)并非基于面向?qū)ο缶幊痰姆椒ǎ耆珜?shí)現(xiàn)一些面向?qū)ο缶幊痰幕咎卣鳌O旅嫱ㄟ^分析高級(jí)編程語(yǔ)言的面向?qū)ο蟮膸追N特性:封裝性、繼承性、多態(tài)性是如何在JS中實(shí)現(xiàn),下面著重介紹這幾種特性實(shí)現(xiàn)過程。

        2 通過JavaScript編程技術(shù)實(shí)現(xiàn)的對(duì)象封裝性

        2.1 實(shí)現(xiàn)類的聲明過程

        在JavaScript編程技術(shù)中,類的實(shí)現(xiàn)是基于函數(shù)方式來實(shí)現(xiàn)的過程,每個(gè)function直接被看成在Java編程中類的定義,這個(gè)類中可以定義相關(guān)的屬性或者方法,可以是全局變量或者局部變量,也可以賦初值或者定義一個(gè)默認(rèn)的初值,在JavaScript編程技術(shù)中局部變量視為函數(shù)的成員對(duì)象,函數(shù)內(nèi)部定義的函數(shù)可以自身的方法,下面簡(jiǎn)單介紹關(guān)于類的聲明方式。通過定義一個(gè)動(dòng)物類,其中包括動(dòng)物類的屬性和相關(guān)方法,屬性為動(dòng)物名稱、動(dòng)物腿的數(shù)量、動(dòng)物身體上顏色、動(dòng)物生活區(qū)域等等,相關(guān)方法主要包括動(dòng)物能夠?qū)崿F(xiàn)“跑”的動(dòng)作、能夠?qū)崿F(xiàn)“吃肉”的動(dòng)作。

        Var 名稱;//定義一個(gè)全局的動(dòng)物名稱變量

        Var 腿數(shù)量; //定義一個(gè)全局的動(dòng)物腿數(shù)量變量

        Var 顏色; //定義一個(gè)全局的動(dòng)物身上的顏色變量

        Var 生活區(qū)域; //定義一個(gè)全局的動(dòng)物生活區(qū)域的變量

        Function 動(dòng)物{//定義一個(gè)動(dòng)物類,名稱為動(dòng)物

        This.名稱=”老虎”;//初始化動(dòng)物名稱變量值

        This.腿數(shù)量 =”4”; //初始化動(dòng)物腿數(shù)量變量值

        This.顏色=”黃色”; //初始化動(dòng)物動(dòng)物身上顏色變量值

        This.生活區(qū)域=”森林中”; //初始化動(dòng)物動(dòng)物生活區(qū)域變量值

        This.eat=function(){alert(”表示該動(dòng)物能吃肉!”);}//函數(shù)表示該動(dòng)物能吃肉

        }

        從上面的這段代碼片段可以看出,動(dòng)物類已經(jīng)定義了名稱、腿數(shù)量、顏色和生活區(qū)域四個(gè)與之相關(guān)的屬性,并在此類中定義了一個(gè)屬于該類的成員方法eat(),在函數(shù)外部的調(diào)用某個(gè)類的屬性時(shí)使用點(diǎn)”.”操作符,上面的代碼中名稱、腿數(shù)量、顏色和生活區(qū)域四個(gè)變量是公有的成員變量,那么在在JavaScript中能否定義私有成員變量呢?下面看這段代碼片段。

        Function 動(dòng)物{

        Var 動(dòng)物昵稱=”私有變量”; //這里定義很多的私有變量

        This.名稱=”老虎”; //定義一個(gè)局部的動(dòng)物名稱變量

        This.腿數(shù)量 =”4”; //定義一個(gè)局部的動(dòng)物腿數(shù)量變量

        This.顏色=”黃色”; //定義一個(gè)局部的動(dòng)物身上的顏色變量

        This.生活區(qū)域=”森林中”; //初始化動(dòng)物動(dòng)物生活區(qū)域變量值

        This.eat=function(){alert(”表示該動(dòng)物能吃肉!”);} //函數(shù)表示該動(dòng)物能吃肉

        }

        在上面的代碼中,Var動(dòng)物昵稱=“私有變量”;則表示為該類中的私有成員變量,并且只在動(dòng)物類中起到引用的作用,并不被外部的程序或者類所使用,僅僅屬于該類自己的變量。因此,在JavaScript中可以通過定義類中局部變量成為私有變量。

        2.2 JavaScript中實(shí)現(xiàn)的構(gòu)造函數(shù)

        在JavaScript編程技術(shù)中,構(gòu)造函數(shù)是為了實(shí)現(xiàn)對(duì)象的變量值初始化操作的功能,通過this變量和點(diǎn)“·”操作符實(shí)現(xiàn)構(gòu)造函數(shù)的變量初始化操作,并且將變量值賦給某個(gè)對(duì)象的某個(gè)屬性,在編程語(yǔ)言中我們可以通過參考下面的代碼片段實(shí)現(xiàn)構(gòu)造函數(shù),使對(duì)象的變量進(jìn)行初始化操作。

        Function 動(dòng)物(名稱,腿數(shù)量,顏色){//定義一個(gè)動(dòng)物類構(gòu)造函數(shù),含有三個(gè)參數(shù)分別是動(dòng)物名稱、動(dòng)物腿數(shù)量、動(dòng)物身上顏色

        This.名稱= 名稱; //通過動(dòng)物類構(gòu)造函數(shù)對(duì)動(dòng)物名稱的變量賦初值

        This.腿數(shù)量 =腿數(shù)量; //通過動(dòng)物類構(gòu)造函數(shù)對(duì)動(dòng)物腿數(shù)量的變量賦初值

        This.顏色=顏色; //通過動(dòng)物類構(gòu)造函數(shù)對(duì)動(dòng)物身上顏色的變量賦初值

        }

        上面的這個(gè)代碼片段實(shí)現(xiàn)了在高級(jí)語(yǔ)言中的構(gòu)造函數(shù),為了某個(gè)類中的部分變量的初始化操作。

        2.3 JavaScript中創(chuàng)建實(shí)例對(duì)象

        通過JavaScript編程技術(shù)中創(chuàng)建某個(gè)類的實(shí)例化對(duì)象,下面通過創(chuàng)建幾個(gè)不同的動(dòng)物類對(duì)象的實(shí)例化,下面的定義方式為創(chuàng)建某個(gè)類的實(shí)例化對(duì)象:

        Var 老虎=new 動(dòng)物(”老虎”,”4”,”黃色”);

        Var 華南老虎 =new 動(dòng)物(”華南老虎”,”4”,”黃白相間”);

        上面的代碼是通過函數(shù)方式實(shí)現(xiàn)對(duì)象的實(shí)例化和封裝,通過JavaScript編程技術(shù)中創(chuàng)建某個(gè)類的實(shí)例化對(duì)象。

        3 JavaScript中繼承性的實(shí)現(xiàn)

        本節(jié)中講述的繼承性是指子類繼承父類的屬性或者方法,在子類中無(wú)需編寫與父類相同的代碼,在JavaScript中并沒有支持繼承的語(yǔ)法作支持,但是有一種方式可以通過隱式方式實(shí)現(xiàn)繼承,如果要實(shí)現(xiàn)繼承,簡(jiǎn)單的方式是通過apply方法實(shí)現(xiàn)類之間的繼承性,將父類對(duì)象賦給子類對(duì)象上,即可實(shí)現(xiàn)子類對(duì)象中增加一處代碼即可實(shí)現(xiàn),如下面的所示代碼片段實(shí)現(xiàn)類與類之間的繼承性。

        Function 狗類(名稱,腿數(shù)量){

        動(dòng)物.apply(this,顏色);//將父類對(duì)象賦給子類對(duì)象中;

        This.名稱= 名稱;//子類對(duì)象通過繼承父類參數(shù)對(duì)子類進(jìn)行賦值

        This.腿數(shù)量 =腿數(shù)量;

        }

        4 JavaScript中多態(tài)性的實(shí)現(xiàn)

        本節(jié)中講述的多態(tài)性是在類中允許出現(xiàn)多個(gè)相同或者相似的函數(shù)名稱,構(gòu)造成幾個(gè)表面上十分相似的函數(shù)名稱,但是,存在某些細(xì)微的差別之處,差別在于函數(shù)的參數(shù)個(gè)數(shù)、參數(shù)類型、函數(shù)的實(shí)現(xiàn)功能是不同的,如何在JavaScript編程技術(shù)中實(shí)現(xiàn)多態(tài),有下面的幾種實(shí)現(xiàn)方式:重載和覆蓋。重載是根據(jù)在類中允許存在多個(gè)相似名稱的函數(shù),而這些函數(shù)參數(shù)類型、個(gè)數(shù)或者返回值不同而已,或者參數(shù)和返回值都不同,只是看是相似而本質(zhì)上并不相似。通過下面的代碼片段認(rèn)識(shí)一下如何在JavaScript中實(shí)現(xiàn)多態(tài)性。

        Function 動(dòng)物(名稱){This.名稱= 名稱;}

        //含有一個(gè)參數(shù)動(dòng)物類的構(gòu)造函數(shù),并通過動(dòng)物類構(gòu)造函數(shù)對(duì)動(dòng)物名稱的變量賦初值

        Function 動(dòng)物(名稱,腿數(shù)量){This.名稱= 名稱;This.腿數(shù)量 =腿數(shù)量;}

        //含有兩個(gè)參數(shù)動(dòng)物類的構(gòu)造函數(shù),并通過動(dòng)物類構(gòu)造函數(shù)對(duì)動(dòng)物名稱的變量和動(dòng)物腿數(shù)變量的初值

        Function 動(dòng)物(名稱,腿數(shù)量,顏色){This.名稱= 名稱;

        This.腿數(shù)量 =腿數(shù)量;This.顏色=顏色;}

        //含有三個(gè)參數(shù)動(dòng)物類的構(gòu)造函數(shù),并通過動(dòng)物類構(gòu)造函數(shù)對(duì)動(dòng)物名稱的變量、動(dòng)物腿數(shù)變量、動(dòng)物身上顏色變量的初值

        Function 主函數(shù)(){

        動(dòng)物(“老虎”); //此處調(diào)用帶有一個(gè)參數(shù)的動(dòng)物類的構(gòu)造函數(shù),參數(shù)為“老虎”

        動(dòng)物(“老虎”,”4”); //此處調(diào)用帶有兩個(gè)參數(shù)的動(dòng)物類的構(gòu)造函數(shù),參數(shù)為“老虎”,“4”

        動(dòng)物(“老虎”,”4”,”黃色”) //此處調(diào)用帶有三個(gè)參數(shù)的動(dòng)物類的構(gòu)造函數(shù),參數(shù)為“老虎”,“4”,“黃色”

        }

        上述的偽代碼片段顯示,實(shí)現(xiàn)了多個(gè)參數(shù)不同的函數(shù)動(dòng)物類(名稱)、動(dòng)物類(名稱,腿數(shù)量)、動(dòng)物類(名稱,腿數(shù)量,顏色),動(dòng)物類則是需要函數(shù)重載方式,總之,在JavaScript編程技術(shù)中實(shí)現(xiàn)函數(shù)重載是根據(jù)程序員自身定義形成一種重載方式,下面通過覆蓋的方式實(shí)現(xiàn)某類對(duì)象的多態(tài)性的具體實(shí)例,對(duì)于在網(wǎng)頁(yè)的網(wǎng)頁(yè)中重寫關(guān)閉當(dāng)前網(wǎng)頁(yè)函數(shù)的代碼片段如下所示:

        久久麻豆精亚洲av品国产精品| 久久www色情成人免费观看| 男女18禁啪啪无遮挡| 免费一级黄色大片久久久| 亚洲综合在线一区二区三区| 国产精品久久久天天影视| 蜜臀av性久久久久蜜臀aⅴ| 国产91福利在线精品剧情尤物| 日本大胆人体亚裔一区二区| 国产精品午夜夜伦鲁鲁| 精品人妻午夜一区二区三区四区| 在线精品国产一区二区| 国产免费视频一区二区| 精品人妻久久一日二个| 人妻夜夜爽天天爽三区| 国产精品一区二区在线观看99| 免费美女黄网站久久久| 岛国熟女精品一区二区三区| 亚洲精品suv精品一区二区| 8av国产精品爽爽ⅴa在线观看| 亚洲香蕉久久一区二区| 国产精品情侣呻吟对白视频| 亚洲av综合av国产av| 国产片三级视频播放| 国产视频一区二区三区观看| 国产精品中文久久久久久久| 中文亚洲日韩欧美| 亚洲素人av在线观看| 中文无码av一区二区三区| 三年片免费观看大全国语| 福利网在线| 国产的自拍av免费的在线观看| 狼人青草久久网伊人| 精品国产18禁久久久久久久| 日韩产的人妻av在线网| 夹得好湿真拔不出来了动态图| 永久黄网站色视频免费| 亚洲妇女av一区二区| 成人免费自拍视频在线观看| 精品国模一区二区三区| 99精品国产第一福利网站|