摘要:博客地址地址今天開啟我的專欄第一篇,接下來的日子,將和大家談?wù)撘幌乱恍┦虑椋衣l(fā)現(xiàn)你想實(shí)習(xí)面向?qū)ο缶幊?,你得?duì)原型鏈比較熟悉,對(duì)于指向也要比較熟悉,才能更好,將代碼進(jìn)行高度抽象起來面向?qū)ο蟾拍蠲嫦驅(qū)ο蠛兔嫦蜻^程的區(qū)別面向過程我們?cè)趧倓偝?/p>
博客地址地址
今天開啟我的專欄第一篇,接下來的日子,將和大家談?wù)撘幌翵avaScript一些事情,
我慢慢發(fā)現(xiàn)你想實(shí)習(xí)面向?qū)ο缶幊?,你得?duì)原型鏈比較熟悉,對(duì)于this指向也要比較熟悉,才能更好,將代碼進(jìn)行高度抽象起來
1.0 面向?qū)ο蟾拍?/b> 1.1 面向?qū)ο蠛兔嫦蜻^程的區(qū)別面向過程:我們?cè)趧倓偝鯇W(xué)JavaScript時(shí)候,我們要復(fù)用一個(gè)方法,就想這個(gè)方法寫成一個(gè)函數(shù),然后在需要用到的時(shí)候,進(jìn)行調(diào)用
面向?qū)ο?/b>:把構(gòu)成問題事務(wù)分解成各個(gè)對(duì)象,建立對(duì)象的目的不是為了完成一個(gè)步驟,而是為了描敘某個(gè)事物在整個(gè)解決問題的步驟中的行為。
知乎有一個(gè)關(guān)于面向?qū)ο笕グ傻幕卮?/p>
面向過程的解決方法搖狗尾巴和狗搖尾巴的區(qū)別
在面向過程的編程方式中實(shí)現(xiàn)“把大象放冰箱”這個(gè)問題答案是耳熟能詳?shù)?,一共分三步?/p>
開門(冰箱); 裝進(jìn)(冰箱,大象); 關(guān)門(冰箱)。面向?qū)ο蟮慕鉀Q方法
冰箱.開門() 冰箱.裝進(jìn)(大象) 冰箱.關(guān)門()2.0 實(shí)現(xiàn)面向?qū)ο蠓椒?/b>
這里我們討論幾個(gè)主要的實(shí)現(xiàn)面向?qū)ο蠓椒?/p> 2.1 工廠模式
何為工廠模式,
function Person(name,age,sex){ var obj = {}; obj.name = name; obj.age=age; obj.sex=sex; return obj; } let person1 = Person("夏夏",18,"男") console.log(person1)
其實(shí)上面還有這么寫
function Person(name,age,sex){ var obj = {}; obj.name = name; obj.age = age; obj.sex =sex; } let person2 = new Person("我是有new",18,"男")2.2 構(gòu)造函數(shù)
JavaScript中new可以讓函數(shù)變的與眾不同
function demo() { console.log(this); } demo(); // window new demo(); // demo
關(guān)于構(gòu)造函數(shù),如果你暫時(shí)不能夠理解new的具體實(shí)現(xiàn),就先記住下面這幾個(gè)結(jié)論吧。
與普通函數(shù)相比,構(gòu)造函數(shù)并沒有任何特別的地方,首字母大寫只是我們約定的小規(guī)定,用于區(qū)分普通函數(shù); new關(guān)鍵字讓構(gòu)造函數(shù)具有了與普通函數(shù)不同的許多特點(diǎn),而new的過程中,執(zhí)行了如下過程: 聲明一個(gè)中間對(duì)象;
將該中間對(duì)象的原型指向構(gòu)造函數(shù)的原型;
將構(gòu)造函數(shù)的this,指向該中間對(duì)象;
返回該中間對(duì)象,即返回實(shí)例對(duì)象。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/89581.html
摘要:很多情況下,通常一個(gè)人類,即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類是相似對(duì)象的描述,稱為類的定義,是該類對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過對(duì)類的實(shí)體化形成的對(duì)象。一類的對(duì)象抽取出來。注意中,對(duì)象一定是通過類的實(shí)例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:很多情況下,通常一個(gè)人類,即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類是相似對(duì)象的描述,稱為類的定義,是該類對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過對(duì)類的實(shí)體化形成的對(duì)象。一類的對(duì)象抽取出來。注意中,對(duì)象一定是通過類的實(shí)例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:很多情況下,通常一個(gè)人類,即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類是相似對(duì)象的描述,稱為類的定義,是該類對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過對(duì)類的實(shí)體化形成的對(duì)象。一類的對(duì)象抽取出來。注意中,對(duì)象一定是通過類的實(shí)例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:是完全的面向?qū)ο笳Z言,它們通過類的形式組織函數(shù)和變量,使之不能脫離對(duì)象存在。而在基于原型的面向?qū)ο蠓绞街?,?duì)象則是依靠構(gòu)造器利用原型構(gòu)造出來的。 JavaScript 函數(shù)式腳本語言特性以及其看似隨意的編寫風(fēng)格,導(dǎo)致長(zhǎng)期以來人們對(duì)這一門語言的誤解,即認(rèn)為 JavaScript 不是一門面向?qū)ο蟮恼Z言,或者只是部分具備一些面向?qū)ο蟮奶卣?。本文將回歸面向?qū)ο蟊疽猓瑥膶?duì)語言感悟的角度闡述為什...
摘要:對(duì)象重新認(rèn)識(shí)面向?qū)ο竺嫦驅(qū)ο髲脑O(shè)計(jì)模式上看,對(duì)象是計(jì)算機(jī)抽象現(xiàn)實(shí)世界的一種方式。除了字面式聲明方式之外,允許通過構(gòu)造器創(chuàng)建對(duì)象。每個(gè)構(gòu)造器實(shí)際上是一個(gè)函數(shù)對(duì)象該函數(shù)對(duì)象含有一個(gè)屬性用于實(shí)現(xiàn)基于原型的繼承和共享屬性。 title: JS對(duì)象(1)重新認(rèn)識(shí)面向?qū)ο? date: 2016-10-05 tags: JavaScript 0x00 面向?qū)ο?從設(shè)計(jì)模式上看,對(duì)象是...
摘要:之前,本質(zhì)上不能算是一門面向?qū)ο蟮木幊陶Z言,因?yàn)樗鼘?duì)于封裝繼承多態(tài)這些面向?qū)ο笳Z言的特點(diǎn)并沒有在語言層面上提供原生的支持。所以在中出現(xiàn)了等關(guān)鍵字,解決了面向?qū)ο笾谐霈F(xiàn)了問題。 ES6之前,javascript本質(zhì)上不能算是一門面向?qū)ο蟮木幊陶Z言,因?yàn)樗鼘?duì)于封裝、繼承、多態(tài)這些面向?qū)ο笳Z言的特點(diǎn)并沒有在語言層面上提供原生的支持。但是,它引入了原型(prototype)的概念,可以讓我們以...
閱讀 3790·2021-11-17 09:33
閱讀 2861·2021-09-22 15:12
閱讀 3417·2021-08-12 13:24
閱讀 2522·2019-08-30 11:14
閱讀 1797·2019-08-29 14:09
閱讀 1380·2019-08-26 14:01
閱讀 3145·2019-08-26 13:49
閱讀 1839·2019-08-26 12:16