今天就跟大家聊聊有關(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
畫圖分析:( 有圖有真相 )
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)窃鯓拥?/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)