摘要:構(gòu)造函數(shù)構(gòu)造函數(shù)名大寫即使不寫,構(gòu)造函數(shù)也默認(rèn)返回,最好不寫創(chuàng)建實(shí)例執(zhí)行過程變成空對(duì)象屬性賦值賦值給擴(kuò)展引用類型都有構(gòu)造函數(shù)本質(zhì)是的語法糖判斷引用類型屬于哪個(gè)構(gòu)造函數(shù),例判斷邏輯的一層一層向上找,能否對(duì)應(yīng)到原型規(guī)則以下所說的引用類型均指對(duì)象
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)建實(shí)例 (執(zhí)行過程:(1)this 變成空對(duì)象 (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è)構(gòu)造函數(shù),例: f instanceof Foo;判斷邏輯:f的_proto_,一層一層向上找,能否對(duì)應(yīng)到 Foo.prototype)
2.原型規(guī)則
以下所說的引用類型均指(對(duì)象、數(shù)組、函數(shù),不包括null) (1)所有引用類型,均可自由擴(kuò)展屬性(具有對(duì)象特性) (2)所有引用類型,均有一個(gè)隱式原型屬性(_proto_屬性),屬性值是一個(gè)普通對(duì)象 (3)只有所有函數(shù),均有一個(gè)顯示原型屬性(prototype屬性),屬性值是一個(gè)普通對(duì)象 (4)所有引用類型,_proto_屬性值 指向它的構(gòu)造函數(shù)的 prototype屬性值 (obj._proto_ === Object.prototype) (5)當(dāng)想要得到一個(gè)引用類型的某一屬性時(shí),如果其本身不具有該屬性,則會(huì)去它的_proto_(即它的構(gòu)造函數(shù)的 prototype)中尋找
知識(shí)補(bǔ)充:
1.通過對(duì)象屬性形式執(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可以多次綁定同一個(gè)事件并且不會(huì)覆蓋上一個(gè)事件 } var div = new Elem("XXX"); div.html("明天你好
").on("click",function(){ //鏈?zhǔn)秸{(diào)用 alert("Hello World") }); 2.描述new對(duì)象的過程: (1)創(chuàng)建一個(gè)新對(duì)象; (2)this 指向這個(gè)新對(duì)象; (3)執(zhí)行代碼(this 賦值); (4)返回 this;
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/95038.html
摘要:因?yàn)檫@里會(huì)舉一連串的例子,就直接用來作為組件名稱了。這是一個(gè)組件名稱定義的時(shí)候有一點(diǎn)需要注意的,就是要使用中劃線分詞。在組件的方法里面返回?cái)?shù)據(jù)就可以了。在的組件中間定義的內(nèi)容,就會(huì)被插入到的位置中去。敬請(qǐng)期待下一期,組件通信。 界面寫多了,大家應(yīng)該都會(huì)想到一個(gè)問題:JS的模塊寫好以后可以在多個(gè)地方重復(fù)使用,HTML有沒有辦法做到呢?Vue給了我們這個(gè)能力,使用組件,就可以輕松做到。 最...
摘要:上篇文章寫了以我自己的思路來解決這個(gè)問題,但是運(yùn)行時(shí)間過長,看了上的高效寫法是使用位運(yùn)算的解法,當(dāng)初我自己寫這個(gè)問題是也想到了可以用位運(yùn)算快一點(diǎn),但是因?yàn)榛A(chǔ)差,對(duì)位運(yùn)算的掌握不牢靠,還是選擇使用了減法的思路,在此將上高效解法做一個(gè)思路分析 上篇文章寫了以我自己的思路來解決這個(gè)問題,但是運(yùn)行時(shí)間過長,看了leetcode 上的高效寫法是使用位運(yùn)算的解法,當(dāng)初我自己寫這個(gè)問題是也想到了可...
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...
閱讀 1065·2019-08-30 15:55
閱讀 637·2019-08-26 13:56
閱讀 2172·2019-08-26 12:23
閱讀 3400·2019-08-26 10:29
閱讀 681·2019-08-26 10:17
閱讀 2952·2019-08-23 16:53
閱讀 787·2019-08-23 15:55
閱讀 2975·2019-08-23 14:25