成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Javascript中面向?qū)ο蠛驮驮玩準(zhǔn)窃鯓拥?/h1>

今天就跟大家聊聊有關(guān)Javascript中面向?qū)ο蠛驮驮玩準(zhǔn)窃鯓拥模赡芎芏嗳硕疾惶私?,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)公司是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營(yíng)銷,專業(yè)領(lǐng)域包括成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、電商網(wǎng)站制作開(kāi)發(fā)、微信小程序開(kāi)發(fā)、微信營(yíng)銷、系統(tǒng)平臺(tái)開(kāi)發(fā),與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開(kāi)發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營(yíng)銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評(píng)估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!

面向?qū)ο罄碚撝R(shí)總述

* 核心答案 | 基礎(chǔ)知識(shí)要夯實(shí)

編程語(yǔ)言

1、OOP面向?qū)ο螅?/strong>

1)java,

2)python,

3)C++,

4)php,

5)C#(ASP.NET),

6)javascript -> Node.js

2、POP面向過(guò)程:

HTML和CSS是標(biāo)記語(yǔ)言

1)less/sass/stylus:CSS預(yù)編譯語(yǔ)言,讓CSS具備面向?qū)ο缶幊痰奶攸c(diǎn)。

2)寫完的代碼無(wú)法被瀏覽器直接識(shí)別,需要編譯后(編譯成為正常的CSS)在瀏覽器中渲染。

什么是面向?qū)ο缶幊蹋?/strong>

1、對(duì)象:泛指,萬(wàn)物皆對(duì)象(JS中所有我們學(xué)習(xí)研究和開(kāi)發(fā)的都是對(duì)象 「研究對(duì)象」);

2、類:對(duì) “對(duì)象” 的一個(gè)細(xì)分,按照對(duì)應(yīng)的功能特點(diǎn),分成我們的大類和小類「類別」;

3、實(shí)例:某個(gè)類別中具體的事物;

* 關(guān)于類的“封裝、繼承、多態(tài)”

1)封裝:把實(shí)現(xiàn)某個(gè)功能的代碼封裝到函數(shù)中,起到“低耦合高內(nèi)聚”的作用

2)繼承:子類及子類的實(shí)例繼承了父類中的屬性和方法

3)多態(tài):函數(shù)的重載(方法名字相同,但是傳遞參數(shù)的個(gè)數(shù)或者類型不同,識(shí)別為兩個(gè)不同的方法 -> 后臺(tái)語(yǔ)言有這個(gè)特征,但是JS中不存在嚴(yán)格意義上的重載)和重寫(子類重寫父類的方法)

JS就是基于“面向?qū)ο蟆彼枷朐O(shè)計(jì)的編程語(yǔ)言

1、本身存在很多“內(nèi)置類”

1)每一個(gè)數(shù)據(jù)類型都有一個(gè)自己所屬的內(nèi)置類

2)獲取的元素集合或者節(jié)點(diǎn)集合也是有自己的類 HTMLCollection / NodeList

3)每一個(gè)元素標(biāo)簽都有自己所屬的類

2、我們學(xué)習(xí)JS:拿出某個(gè)類的一個(gè)實(shí)例去研究和學(xué)習(xí),當(dāng)前實(shí)例研究明白后,那么當(dāng)前實(shí)例所屬類下的其他實(shí)例,也具備這些特點(diǎn)...

自定義類的創(chuàng)建和一些細(xì)節(jié)知識(shí)

* 核心答案 | 基礎(chǔ)知識(shí)要夯實(shí)

自定義類(所有的類「內(nèi)置類/自定義類」都是“函數(shù)數(shù)據(jù)類型”的值)

函數(shù)執(zhí)行的時(shí)候基于new執(zhí)行即可 “構(gòu)造函數(shù)執(zhí)行”。

? 例如一:普通函數(shù) 與 構(gòu)造函數(shù)

function Fn(x, y) {     let total = x + y;     this.x = x;     this.y = y;     return total; } // 1、作為普通函數(shù)執(zhí)行 Fn(10, 20);  // 2、構(gòu)造函數(shù)執(zhí)行 // 說(shuō)明:f1是Fn這個(gè)類的一個(gè)實(shí)例對(duì)象 let f1 = new Fn(10, 20); console.log(f1.x, f1.y, f1.total);  // 說(shuō)明:total只是上下文中的私有變量,和實(shí)例f1沒(méi)有關(guān)系」 // 結(jié)果:10 20 undefined

畫圖分析:( 有圖有真相 )

Javascript中面向?qū)ο蠛驮驮玩準(zhǔn)窃鯓拥?></p><p><strong>構(gòu)造函數(shù) VS 普通函數(shù)</strong></p><p>1、構(gòu)造函數(shù)執(zhí)行,最開(kāi)始會(huì)像普通函數(shù)執(zhí)行一樣,形成私有的上下文。</p><p>1)AO;</p><p>2)  SCOPE-CHAIN;</p><p>3)形參賦值;</p><p>4)變量提升;</p><p>5)代碼執(zhí)行;</p><p><strong>不同的地方:</strong></p><p>1、創(chuàng)建上下文之后,瀏覽器默認(rèn)幫助我們創(chuàng)建一個(gè)對(duì)象 “實(shí)例對(duì)象”。</p><p>1)把當(dāng)前Fn函數(shù)當(dāng)作一個(gè)類“構(gòu)造函數(shù)”</p><p>2)創(chuàng)建的對(duì)象就是這個(gè)類的一個(gè)實(shí)例</p><p>2、初始this的時(shí)候,讓this指向當(dāng)前創(chuàng)建的實(shí)例對(duì)象。</p><p>3、在代碼執(zhí)行完,返回值的時(shí)候</p><p>1)如果函數(shù)沒(méi)有寫return,或者返回的是一個(gè)基本數(shù)據(jù)類型值,則瀏覽器默認(rèn),會(huì)把創(chuàng)建的實(shí)例對(duì)象返回;</p><p>2)如果函數(shù)本身返回的就是一個(gè)引用數(shù)據(jù)類型值,還是以自己返回的為主。</p><p><strong>? 例如二:構(gòu)造函數(shù)擴(kuò)展</strong></p><pre>function Fn(x, y) {     let total = x + y;     this.x = x;     this.y = y;     return {         name: '前端學(xué)苑'     }; }</pre><p><strong>說(shuō)明:</strong></p><p>由于構(gòu)造函數(shù)體中,默認(rèn)自己返回一個(gè)引用類型值,所以f1不再是創(chuàng)建的Fn實(shí)例,而是自己返回的對(duì)象。</p><p>let f1 = new Fn(10, 20);</p><p>“實(shí)例 instanceof 構(gòu)造函數(shù)” :檢測(cè)當(dāng)前實(shí)例是否屬于這個(gè)類。</p><p>console.log(f1 instanceof Fn); //false</p><p><strong>? 例如三:函數(shù)擴(kuò)展</strong></p><pre>function Fn(x, y) {     let total = x + y;     this.x = x;     this.y = y;     this.say = function say() {         console.log(`SAY:${total}`);     }; } let f1 = new Fn(10, 20); let f2 = new Fn;</pre><p>畫圖分析:( 有圖有真相 )</p><p><img src=

let keys = [     ...Object.keys(obj),     ...Object.getOwnPropertySymbols(obj) ]; keys.forEach(key => {     console.log(`屬性名:${String(key)},屬性值:${obj[key]}`); });

說(shuō)明:

1)Object.keys(obj):獲取當(dāng)前對(duì)象所有非Symbol的私有屬性「數(shù)組」 =>Object.getOwnPropertyNames.

2)Object.getOwnPropertySymbols(obj):獲取對(duì)象所有的Symbol私有屬性「數(shù)組」.

面向?qū)ο笾械脑秃驮玩?/strong>

* 核心答案 | 基礎(chǔ)知識(shí)要夯實(shí)

1、函數(shù)數(shù)據(jù)類型

1)普通函數(shù)

2)箭頭函數(shù)

3)生成器函數(shù)

4)構(gòu)造函數(shù)(類)

2、對(duì)象數(shù)據(jù)類型

1)普通對(duì)象/數(shù)組對(duì)象/正則對(duì)象/日期對(duì)象...

2)實(shí)例也是對(duì)象數(shù)據(jù)類型的(排除7種原始值類型)

3)prototype/__proto__原型屬性值也是對(duì)象(排除Function.prototype)

3、大部分函數(shù)(重點(diǎn)是構(gòu)造函數(shù)) 都內(nèi)置一個(gè)prototype(原型「顯式原型」)的屬性,屬性值是一個(gè)對(duì)象,對(duì)象中存儲(chǔ)的屬性和方法,是供當(dāng)前類所屬實(shí)例,調(diào)用的“公共”的屬性和方法

1)箭頭函數(shù)是沒(méi)有prototype屬性的;

2)在原型對(duì)象上有一個(gè)內(nèi)置的屬性 constructor(構(gòu)造器),屬性值是當(dāng)前函數(shù)本身;

4、每一個(gè)對(duì)象都內(nèi)置一個(gè)__proto__(原型鏈「隱式原型」)的屬性,屬性值指向自己所屬類的原型prototype對(duì)象。

1)Object.prototype這個(gè)對(duì)象的__proto__值是null,因?yàn)镺bject是所有對(duì)象的“基類”

只繪制“堆內(nèi)存”,畫圖分析:( 有圖有真相 )

Javascript中面向?qū)ο蠛驮驮玩準(zhǔn)窃鯓拥?></p><p><strong>解析說(shuō)明:</strong></p><p>每一個(gè)數(shù)組都是Array類的實(shí)例,所以每一個(gè)數(shù)組的_proto_一定指向Array.prototype;</p><p>每一個(gè)對(duì)象都是Object類的實(shí)例,所以Array.prototype對(duì)象中的_proto_屬性指向Object.prototype;</p><p>原型鏈的查找機(jī)制</p><p>arr[1]或者 arr.push() 再或者 arr.hasOwnProperty()&hellip;</p><p>1)首先查找當(dāng)前實(shí)例對(duì)象的私有屬性,私有中有,獲取就是私有的;</p><p>2)如果私有中沒(méi)有,則瀏覽器默認(rèn)基于_proto_找其所屬類原型(prototype)上的公共屬性和方法;</p><p>3)如果還找不到,則基于原型對(duì)象上的_proto_繼續(xù)向上查找 &hellip; 直到找到Object.prototype為止。最終到null。</p><p>例如:arr.push <=> arr._proto_.push <=> Array.prototype.push</p><p>1)找到的方法都是相同的;</p><p>2)區(qū)別是方法執(zhí)行時(shí)候,里面的this 不同;</p><p>(1)arr.push() arr首先基于原型鏈查找機(jī)制,找到Array.prototype上的push 方法,并且把方法執(zhí)行,方法中的this -> arr;</p><p>(2)arr._proto_.push() 直接跳過(guò)私有屬性的查找,找公共的,方法執(zhí)行的時(shí)候,方法中的this -> arr._proto_;</p><p>Array.prototype.push() this -> Array.prototype</p><p>3)_proto_ 在IE瀏覽器中進(jìn)行訪問(wèn)。(那如果代碼需要用到_proto_ ,怎么在IE中用呢? 結(jié)果:不能用。)</p><p>arr.hasOwnProperty('push') -> false</p><p>Array.prototype.hasOwnProperty('push') -> true</p><p>公有還是私有屬性,它是有參照物的</p><p>1)存儲(chǔ)在自己的堆內(nèi)存中的屬性是 “私有的”;</p><p>2)基于_proto_查找到的屬性和方法有“公有的”;</p><p>每一個(gè)數(shù)組“即是數(shù)組也是對(duì)象”,因?yàn)樗鼈兛梢哉{(diào)用Array.prototype和Object.prototype的屬性和方法。<br/><strong>* 構(gòu)造函數(shù)、原型與實(shí)例之間的關(guān)系</strong></p><p><img src=Javascript中面向?qū)ο蠛驮驮玩準(zhǔn)窃鯓拥?/a>
當(dāng)前URL:http://jinyejixie.com/article46/ppschg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、商城網(wǎng)站、域名注冊(cè)、App設(shè)計(jì)營(yíng)銷型網(wǎng)站建設(shè)、軟件開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)