js構(gòu)造函數(shù)、原型鏈、ajax筆記

js構(gòu)造函數(shù)、原型鏈、ajax筆記

ID:14618127

大?。?8.13 KB

頁數(shù):6頁

時間:2018-07-29

js構(gòu)造函數(shù)、原型鏈、ajax筆記_第1頁
js構(gòu)造函數(shù)、原型鏈、ajax筆記_第2頁
js構(gòu)造函數(shù)、原型鏈、ajax筆記_第3頁
js構(gòu)造函數(shù)、原型鏈、ajax筆記_第4頁
js構(gòu)造函數(shù)、原型鏈、ajax筆記_第5頁
資源描述:

《js構(gòu)造函數(shù)、原型鏈、ajax筆記》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、一、This——運行時基于函數(shù)的執(zhí)行環(huán)境綁定1、全局函數(shù):window2、函數(shù)作為某個對象obj的方法調(diào)用:obj3、匿名函數(shù):全局性,通常指向window4、修改this作用域:apply()、call()。第一個參數(shù)為目標(biāo)對象;第二個參數(shù):apply接收參數(shù)數(shù)組,call接受參數(shù)值二、閉包1、定義:有權(quán)訪問另一個函數(shù)作用域中變量的函數(shù)2、實現(xiàn):在一個函數(shù)內(nèi)部創(chuàng)建另一個函數(shù)3、變量:只能取得包含函數(shù)中任何變量的最后一個值,保存的是整個變量對象(典型:for循環(huán)中的閉包總是返回最后一個循環(huán)的值,無

2、法返回每次循環(huán)的值)4、解決:在閉包內(nèi)部再創(chuàng)建一個匿名函數(shù)functionaa(){varresult;for(vari=0;i<10;i++){result[i]=function(num){//閉包returnfunction(){//閉包中再創(chuàng)建一個函數(shù)alert(num);}}(i);}}三、塊級作用域(function(){//塊級作用域,其中的變量在執(zhí)行結(jié)束后被銷毀})();四、創(chuàng)建對象1、簡單方式varperson=newObject();person.name=“LL”;perso

3、n.age=22;問題:創(chuàng)建多個相似對象,大量重復(fù)代碼2、工廠模式functionPerson(name,age){varo=newObject();o.name=name;o.age=age;o.getName=function(){alert(this.name);}returno;}varperson1=newPerson(“LL”,22);person1.getName();//”LL”(1)根據(jù)接受的參數(shù)來構(gòu)建一個包含所有必要信息的Person對象,多次調(diào)用,每次返回一個包含兩個屬性和一

4、個方法的對象。(2)優(yōu)點:解決了創(chuàng)建多個相似對象的問題問題:對象識別的問題,即怎樣知道一個對象的類型解決:構(gòu)造函數(shù)1、構(gòu)造函數(shù)模式functionPerson(name,age){this.name=name;this.age=age;this.getName=function(){alert(this.name);};}varperson1=newPerson(“LL”,22);(1)與工廠模式比較a.沒有顯示的創(chuàng)建對象;b.直接將屬性和方法賦值給this對象;c.沒有return語句;d.將實

5、例標(biāo)識為一種特定的類型(instanceof);(2)構(gòu)造函數(shù)與普通函數(shù)區(qū)別a.習(xí)慣:構(gòu)造函數(shù)始終一個大寫字母開頭,非構(gòu)造函數(shù)以一個小寫字母開頭b.唯一區(qū)別:調(diào)用方式不同,用new調(diào)用為構(gòu)造函數(shù),不用new為普通函數(shù)(3)Constructor屬性:標(biāo)識對象類型person1.constructor==Person;(4)Instanceof操作符:檢測對象類型person1既是Object的實例,也是Person的實例person1instanceofObject==true;person1in

6、stanceofPerson==true;(5)問題:每個方法都要在每個實例上重新創(chuàng)建一遍解決:將方法定義在構(gòu)造函數(shù)外部新問題:方法很多——定義很多全局函數(shù)——自定義的類型無封裝性解決:原型模式2、原型模式functionPerson(){};Person.prototype.name=”LL”;Person.protptype.age=22;Person.prototype.getName=function(){alert(this.name);}varperson1=newPerson();p

7、erson1.job=“doctor”;alert(person1.name);//“LL”(1)函數(shù)的prototype屬性:指針,指向一個對象,該對象包含可以由特定類型的所有實例共享的屬性和方法。(2)與構(gòu)造函數(shù)區(qū)別:不必在構(gòu)造函數(shù)中定義對象實例的信息,將這些信息添加到原型對象中;(3)實例中訪問的都是同一組屬性和方法(4)原型對象a.函數(shù)的prototype(原型)屬性:指向函數(shù)的原型對象b.constructor(構(gòu)造函數(shù))屬性:包含一個指向prototype屬性所在函數(shù)的指針Person

8、.prototype.constructor==Person;c.對象實例只可以訪問保存在原型中的值,不可通過對象實例重寫原型中的值d.為對象實例添加一個屬性時,可屏蔽原型對象中的同名屬性,delet可以刪除新添加的屬性,重新訪問原型中的屬性值(5)hasOwnProperty()——檢測一個屬性是在原型中還是實例中,實例中返回trueperson1.hasOwnProperty(“name”)==flase;person1.hasOwnProperty(job)==true;(6

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。