摘要:構(gòu)造函數(shù)構(gòu)造函數(shù)名大寫即使不寫,構(gòu)造函數(shù)也默認(rèn)返回,最好不寫創(chuàng)建實例執(zhí)行過程變成空對象屬性賦值賦值給擴(kuò)展引用類型都有構(gòu)造函數(shù)本質(zhì)是的語法糖判斷引用類型屬于哪個構(gòu)造函數(shù),例判斷邏輯的一層一層向上找,能否對應(yīng)到原型規(guī)則以下所說的引用類型均指對象
1.構(gòu)造函數(shù):
function Foo(name,age){// Foo構(gòu)造函數(shù)名大寫 this.name =name; this.age = age; // return this; //即使不寫,構(gòu)造函數(shù)也默認(rèn)返回this,最好不寫 } var f = new Foo("lala",12);//創(chuàng)建實例 (執(zhí)行過程:(1)this 變成空對象 (2)屬性賦值 (3)return this 賦值給 f )
擴(kuò)展:引用類型都有構(gòu)造函數(shù)
var obj = {} //本質(zhì)是 var obj = new Object() 的語法糖 var arr = [] // var arr = new Array() function Foo(){...} //var Foo = new Function(...) (instanceof判斷引用類型屬于哪個構(gòu)造函數(shù),例: f instanceof Foo;判斷邏輯:f的_proto_,一層一層向上找,能否對應(yīng)到 Foo.prototype)
2.原型規(guī)則
以下所說的引用類型均指(對象、數(shù)組、函數(shù),不包括null) (1)所有引用類型,均可自由擴(kuò)展屬性(具有對象特性) (2)所有引用類型,均有一個隱式原型屬性(_proto_屬性),屬性值是一個普通對象 (3)只有所有函數(shù),均有一個顯示原型屬性(prototype屬性),屬性值是一個普通對象 (4)所有引用類型,_proto_屬性值 指向它的構(gòu)造函數(shù)的 prototype屬性值 (obj._proto_ === Object.prototype) (5)當(dāng)想要得到一個引用類型的某一屬性時,如果其本身不具有該屬性,則會去它的_proto_(即它的構(gòu)造函數(shù)的 prototype)中尋找
知識補(bǔ)充:
1.通過對象屬性形式執(zhí)行函數(shù)(例:obj.del()),this 指向?qū)ο蟊旧? 2.for(item in obj){ // for in在大多數(shù)瀏覽器屏蔽了來自原型的屬性 if(obj.hasOwnProperty(item)){} //建議加上判斷 }
3.原型鏈
相關(guān)問題:
1.原型鏈繼承的例子-封裝DOM查詢: function Elem(id){ //構(gòu)造函數(shù) this.elem = document.getElementById(id) } Elem.prototype.html = funcion(val){ var elem = this.elem; if(val){ elem.innerHtml = val; // return this //最好不寫 (鏈?zhǔn)讲僮鳎? }else{ rerurn elem.innerHtml } } Elem.prototype.on = funcion(type,fn){ var elem = this.elem; elem.addEventListener(type,fn); //addEventListener可以多次綁定同一個事件并且不會覆蓋上一個事件 } var div = new Elem("XXX"); div.html("明天你好
").on("click",function(){ //鏈?zhǔn)秸{(diào)用 alert("Hello World") }); 2.描述new對象的過程: (1)創(chuàng)建一個新對象; (2)this 指向這個新對象; (3)執(zhí)行代碼(this 賦值); (4)返回 this;
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/95038.html
摘要:因為這里會舉一連串的例子,就直接用來作為組件名稱了。這是一個組件名稱定義的時候有一點需要注意的,就是要使用中劃線分詞。在組件的方法里面返回數(shù)據(jù)就可以了。在的組件中間定義的內(nèi)容,就會被插入到的位置中去。敬請期待下一期,組件通信。 界面寫多了,大家應(yīng)該都會想到一個問題:JS的模塊寫好以后可以在多個地方重復(fù)使用,HTML有沒有辦法做到呢?Vue給了我們這個能力,使用組件,就可以輕松做到。 最...
摘要:上篇文章寫了以我自己的思路來解決這個問題,但是運行時間過長,看了上的高效寫法是使用位運算的解法,當(dāng)初我自己寫這個問題是也想到了可以用位運算快一點,但是因為基礎(chǔ)差,對位運算的掌握不牢靠,還是選擇使用了減法的思路,在此將上高效解法做一個思路分析 上篇文章寫了以我自己的思路來解決這個問題,但是運行時間過長,看了leetcode 上的高效寫法是使用位運算的解法,當(dāng)初我自己寫這個問題是也想到了可...
Problem You are given a license key represented as a string S which consists only alphanumeric character and dashes. The string is separated into N+1 groups by N dashes. Given a number K, we would wan...
摘要:編程語言及面向?qū)ο蠡A(chǔ)題 編程語言及面向?qū)ο蠡A(chǔ)題 Design Pattern What is singleton? Whats its cons and pros? How to implement it?Definition: Singleton pattern is a design pattern that ensure that only one instance of a...
閱讀 966·2019-08-30 15:55
閱讀 560·2019-08-26 13:56
閱讀 2094·2019-08-26 12:23
閱讀 3313·2019-08-26 10:29
閱讀 612·2019-08-26 10:17
閱讀 2881·2019-08-23 16:53
閱讀 710·2019-08-23 15:55
閱讀 2836·2019-08-23 14:25