JAVASCRIPT面向?qū)ο蠡A(chǔ)總結(jié)_第1頁
JAVASCRIPT面向?qū)ο蠡A(chǔ)總結(jié)_第2頁
JAVASCRIPT面向?qū)ο蠡A(chǔ)總結(jié)_第3頁
JAVASCRIPT面向?qū)ο蠡A(chǔ)總結(jié)_第4頁
JAVASCRIPT面向?qū)ο蠡A(chǔ)總結(jié)_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、javascript面向?qū)ο蠡A(chǔ)1.使用調(diào)用對象的屬性和方法functionUser()this.age=21;this.sex="男?"varuser=newUser();alert(user"age");2.動態(tài)添加,修改,刪除對象的屬性和方法/定義類varuser=newObject();/添加屬性和方法="cary"user.age=21;user.show=function()alert(+"年?齡?為?:?"+this.age);/執(zhí)行方法user.show();/修

2、改屬性和方法="James"user.show=function()alert(+"你?好?");/執(zhí)行方法user.show();/刪除屬性和方法="undefined"user.show="undefined"/執(zhí)行方法user.show();3.使用大括號語法創(chuàng)建無類型對象varobj=;varuser=name:"cary",age:21,show:function()alert(+"年?齡?為?:?&qu

3、ot;+this.age);user.show();varobj=;等價于varobj=newObject();4.Prototype原型對象每個函數(shù)function也是一個對象,對應(yīng)的類類型為“Function”,每個函數(shù)對象都有一個子對象prototype,表示函數(shù)的原型,所以當我們new一個類的對象的時候prototype對象的成員都會被實例化為對象的成員。例如:functionclass1()alert("prototyemember");varobj=newclass1();obj.show();5.Function函數(shù)對象詳解5.1Function和Date,A

4、rray,String等一樣都屬于JavaScript的內(nèi)部對象,這些對象的構(gòu)造器是由JavaScript本身所定義的。上面說過函數(shù)對象對應(yīng)的類型是Function,這個和數(shù)組的對象是Array一個道理。所以也可以像newArray()一樣newFunction()來創(chuàng)建一個函數(shù)對象,而函數(shù)對象除了使用這種方式還可以使用function關(guān)鍵字來創(chuàng)建。我們之所以不經(jīng)常使用newFunction()的方式來創(chuàng)建函數(shù)是因為一個函數(shù)一般會有很多語句,如果我們將這些都傳到newFunction()的參數(shù)中會顯得可讀性比較差。varfunctionName=newFunction(p1,p2,.,pn,b

5、ody)其中p1到pn為參數(shù),body為函數(shù)體。5.2有名函數(shù)和無名函數(shù)有名函數(shù):functionfuncName()無名函數(shù):varfuncName=function()他們之間的唯一區(qū)別:就是對于有名函數(shù)他可以出現(xiàn)在調(diào)用之后再定義,而對于無名函數(shù),他必須是在調(diào)用之前就已經(jīng)定義好。5.3我們可以利用Function的prototype對象來擴展函數(shù)對象,如:alert("擴展方法");functionfun()fun.show();fun.show().show();fun.show().show();這句的意思是調(diào)用fun.show()這個函數(shù)對象的show方法。是一個

6、遞歸的調(diào)用,因為fun.show()也是一個函數(shù)。5.46.傳遞給參數(shù)的隱含參數(shù)arguments我們在使用函數(shù)時除了傳遞制定的參數(shù),還創(chuàng)建了一個隱含的參數(shù)arguments,如下:functionfun(a,b)for(vari=0;i<arguments.length;i+)alert(argumentsi);fun(1,2,3);arguments還有一個屬性是callee,表示對函數(shù)對象本身的引用。7.函數(shù)的apply,call方法他們的作用都是將函數(shù)綁定到另外一個對象上去運行,兩者只是在定義參數(shù)上有區(qū)別,如下:下面是例子,obj1的show1方法綁定到obj2后整個函數(shù)的執(zhí)行環(huán)

7、境就轉(zhuǎn)移到了obj2,所以this指針也就指向了obj2,所以會顯示fun2t:functionfun1()="fun1"this.show1=function(arg)alert(+arg);functionfun2()="fun2"this.show2=function(arg)alert(+arg);varobj1=newfun1();varobj2=newfun2();8.JavaScript中的類實現(xiàn)8.1命名空間:我們可以使用如下方式實現(xiàn)命名空間,namespace1可以

8、看做為命名空間。varnamespace1=newObject();namespace1.class1=function()/對?象初始化代碼varobj1=newnamespace1.class1();8.2類成員上面的我們已經(jīng)為類添加了成員和方法,除了上面的方法我們還可以使用prototype的方式來給類添加成員,我們怎么做才是最合理的呢,首先來看下前面的方式:functionUser()/構(gòu)造函數(shù)/成員定義alert();上面的方式我們每定義一個類成員都要去寫Utotype,我們可以重構(gòu)為下面的形式:functionUser()/構(gòu)造函數(shù)/成員定義User

9、.prototype=name:"cary",show=function()alert();8.3私有成員實現(xiàn)類的私有成員主要是利用變量的作用域,我們在構(gòu)造函數(shù)中實現(xiàn)。functionUser()/構(gòu)造函數(shù)中定義私有成員varname="cary"functionshow()alert(name);/共有成員this.setname=function()name="james"8.4靜態(tài)成員我們可以通過給一個函數(shù)對象直接添加成員來實現(xiàn)靜態(tài)成員,如:functionclass1()/靜態(tài)屬性和方法class1.staticpr="staticpr"class1.staticmet=function()/調(diào)用class1.staticmet();我們可以通過給函數(shù)對象所在的類Function添加成員來實現(xiàn)給所有的函數(shù)對象默認添加靜態(tài)成員,如下:functionclass1()/調(diào)用class1.staticmet();9.實現(xiàn)反射機制使用for(.in.)方式,for中的varp來存儲User對象的屬性和方法,我們來判斷是屬性還是方法,如下:functionUser()/構(gòu)造函數(shù)/成員定義Utotyp

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論