摘要:很多情況下,通常一個(gè)人類(lèi),即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類(lèi)是相似對(duì)象的描述,稱為類(lèi)的定義,是該類(lèi)對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過(guò)對(duì)類(lèi)的實(shí)體化形成的對(duì)象。一類(lèi)的對(duì)象抽取出來(lái)。注意中,對(duì)象一定是通過(guò)類(lèi)的實(shí)例化來(lái)的。
馬上就要到七夕了,離年底老媽老爸三姑六姨七大爺“找到對(duì)象了嗎?”的靈魂拷問(wèn)又近了一點(diǎn)。今天我們就來(lái)說(shuō)說(shuō)讓廣大程序猿日思夜想抓耳撓腮的“對(duì)象”吧~
不過(guò),此“對(duì)象”非彼“對(duì)象”。這個(gè)“對(duì)象”就是那個(gè)你 new 一下就有了的對(duì)象,不僅天天看到,還經(jīng)常需要“用到”。
然而說(shuō)到對(duì)象,又不得不從面向?qū)ο缶幊陶f(shuō)起了。
面向?qū)ο缶幊?/b>面向?qū)ο缶幊獭狾bject Oriented Programming,是用抽象方式創(chuàng)建基于現(xiàn)實(shí)世界模型的一種編程模式。 它使用先前建立的范例,包括模塊化,多態(tài)和封裝幾種技術(shù)。 今天,許多流行的編程語(yǔ)言(如Java,JavaScript,C#,C+ +,Python,PHP,Ruby和Objective-C)都支持面向?qū)ο缶幊蹋∣OP)。
《計(jì)算機(jī)科學(xué)導(dǎo)論》讀書(shū)筆記(一):淺析面向過(guò)程與面向?qū)ο缶幊?/p>
面向?qū)ο竽J脚c面向過(guò)程模式區(qū)別在于:面向?qū)ο竽J教幚砘顒?dòng)對(duì)象,而非被動(dòng)對(duì)象。如日常生活中的洗衣機(jī),汽車(chē)等。 在這些對(duì)象上執(zhí)行的動(dòng)作都包含在這些對(duì)象中,對(duì)象只需要接收合適的外部刺激即可。
還是拿打印文件做例子,在面向?qū)ο竽J街械奈募馨阉斜晃募?zhí)行的過(guò)程(面向?qū)ο笾谐蔀榉椒ǎù蛴?,?fù)制粘貼等)打包在一起。在這種模式下,程序只需要向文件發(fā)出打印或者復(fù)制的請(qǐng)求,文件就會(huì)被打印或復(fù)制。而這些方法,也被從這些對(duì)象繼承的其它對(duì)象共享。
初探面向?qū)ο缶幊讨畂op與設(shè)計(jì)模式
我們?cè)谑褂妹嫦驅(qū)ο缶幊虝r(shí)一定要記住以下幾個(gè)基本原則(也就是設(shè)計(jì)面向?qū)ο蟪绦虻幕驹瓌t),這樣才能夠更好的理解面向?qū)ο蟮纳钜狻?/p>
單一職責(zé)原則
開(kāi)放封閉原則
里氏替換原則(LSP)
依賴倒置原則
ISP 接口隔離原則
談?wù)勎覍?duì)面向?qū)ο笠约邦?lèi)與對(duì)象的理解
隨著計(jì)算機(jī)技術(shù)的不斷提高,現(xiàn)在計(jì)算機(jī)不單單是用來(lái)解決運(yùn)算問(wèn)題,而是被用于解決越來(lái)越貼近現(xiàn)實(shí)生活的復(fù)雜問(wèn)題。面向?qū)ο缶褪沁@一發(fā)展進(jìn)程的產(chǎn)物,它使得編程工作更貼近人的思維方式,從而大大提升編程效率。我們必須明白的是面向?qū)ο蟛⒉皇且环N編程方式,而是一種編程思維方式,這種思維方式涵蓋了分析,設(shè)計(jì),編碼等。在面向?qū)ο缶幊讨?,程序的基本單元是?duì)象,數(shù)據(jù)封裝在對(duì)象中。類(lèi)是對(duì)象模板,是預(yù)定義好的結(jié)構(gòu),所謂的實(shí)例化一個(gè)類(lèi),所指的就是將數(shù)據(jù)填入模板。
從俄羅斯方塊來(lái)聊一聊面向?qū)ο?/p>
在許多后端語(yǔ)言中,在基礎(chǔ)部分,經(jīng)常說(shuō)面向?qū)ο蠛苤匾?,比如在java中有類(lèi)的概念,封裝、繼承、多態(tài)往往被稱為面向?qū)ο蟮娜齻€(gè)核心。簡(jiǎn)單來(lái)說(shuō),封裝就是為了更好的復(fù)用與繼承。在JavaScript中,在ES6之前雖然沒(méi)有類(lèi)的概念,但往往封裝一些工具類(lèi),增強(qiáng)其復(fù)用性與便利性是一個(gè)不錯(cuò)的選擇。
曾有句經(jīng)典的話:萬(wàn)事萬(wàn)物皆對(duì)象。在許多面向?qū)ο蟮闹v授中,可能很多的都拿人做例子,一個(gè)人是一個(gè)對(duì)象,對(duì)象有一些屬性(姓名、年齡、性別等等),對(duì)象有一些方法(吃飯、行走、說(shuō)話),整個(gè)人類(lèi)即一個(gè)類(lèi)。很多情況下,通常new一個(gè)人類(lèi),即創(chuàng)建了一個(gè)具體的對(duì)象。那拿到面向?qū)ο缶幊虂?lái)說(shuō)的話,這個(gè)對(duì)象可以是更為抽象的概念。
用面向?qū)ο蟮乃季S方式來(lái)設(shè)計(jì)數(shù)據(jù)庫(kù)
PHP 中的面向?qū)ο?/b> 基礎(chǔ)場(chǎng)景
我們有多種類(lèi)型訂單:實(shí)物訂單、特享商戶訂單、核銷(xiāo)訂單、生活繳費(fèi)訂單、電影票訂單、機(jī)票訂單、以及以后會(huì)持續(xù)新增的未知類(lèi)型訂單,它們都存放在不同的訂單類(lèi)型表中
第三種方式使用面向?qū)ο蟮姆绞絹?lái)實(shí)現(xiàn):
先把所有訂單的公有的屬性抽象集合起來(lái)(如:訂單編號(hào)、下單時(shí)間、訂單狀態(tài)、訂單類(lèi)型等)創(chuàng)建一張父訂單表
創(chuàng)建各種訂單專(zhuān)有屬性表(各類(lèi)訂單特有屬性)
關(guān)系:父類(lèi)訂單表 與 訂單表 一對(duì)一的關(guān)系(每張訂單表里面都能在父訂單表里面有1條與之對(duì)應(yīng))
以上方式將能滿足絕大多數(shù)業(yè)務(wù)情況
面向?qū)ο?/p>
對(duì)象和類(lèi)的概念及兩者的關(guān)系:
類(lèi)是定義一系列屬性和操作的模版,而對(duì)象則是把屬性進(jìn)行具體化,然后交給類(lèi)處理。
對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。但是對(duì)象有一個(gè)“指針”指向一個(gè)類(lèi)而這個(gè)類(lèi)里可以有方法。
方法描述不同屬性會(huì)導(dǎo)致不同的表現(xiàn)。
類(lèi)和對(duì)象是不可分割的,有對(duì)象就必定有一個(gè)類(lèi)與其對(duì)應(yīng),否則這個(gè)對(duì)象也就沒(méi)有意義了。(但是有一種特殊情況:由標(biāo)量進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換的object,沒(méi)有一個(gè)類(lèi)與他相對(duì)應(yīng),此時(shí)PHP中一個(gè)稱為“孤兒”sidClass類(lèi)就會(huì)收留這個(gè)對(duì)象)。
php學(xué)習(xí)筆記(二)面向?qū)ο缶幊?/p>
類(lèi)的定義:物以類(lèi)聚,把具有相似特性的對(duì)象歸到一個(gè)類(lèi)中,類(lèi)定義了這些相似對(duì)象擁有的相同屬性和方法。類(lèi)是相似對(duì)象的描述,稱為類(lèi)的定義,是該類(lèi)對(duì)象的藍(lán)圖或原型。
成員方法:類(lèi)中的函數(shù)被稱為成員方法。函數(shù)和成員方法唯一的區(qū)別就是,函數(shù)實(shí)現(xiàn)的是某個(gè)獨(dú)立的功能,而成員方法是實(shí)現(xiàn)類(lèi)中的一個(gè)行為,是類(lèi)的一部分。
構(gòu)造函數(shù):PHP 5 允行開(kāi)發(fā)者在一個(gè)類(lèi)中定義一個(gè)方法作為構(gòu)造函數(shù)。具有構(gòu)造函數(shù)的類(lèi)會(huì)在每次創(chuàng)建新對(duì)象時(shí)先調(diào)用此方法,所以非常適合在使用對(duì)象之前做一些初始化工作。
析構(gòu)函數(shù):析構(gòu)函數(shù)會(huì)在到某個(gè)對(duì)象的所有引用都被刪除或者當(dāng)對(duì)象被顯式銷(xiāo)毀時(shí)執(zhí)行。。
靜態(tài)類(lèi)成員:有時(shí)候,可能需要?jiǎng)?chuàng)建供所有類(lèi)實(shí)例共享的字段和方法,這些字段和方法與所有的類(lèi)實(shí)例有關(guān),但不能由任何特定對(duì)象調(diào)用。。
PHP_OOP
在php中,對(duì)象通過(guò)對(duì)類(lèi)的實(shí)體化形成的對(duì)象。
類(lèi)(class):對(duì)象的模子。 一類(lèi)的對(duì)象抽取出來(lái)。一個(gè)將對(duì)象的行為和屬性的一個(gè)抽象。就是一個(gè)定義。規(guī)定了對(duì)象應(yīng)該有哪些屬性,應(yīng)該有哪些操作(方法)。
實(shí)例化:一個(gè)動(dòng)作,根據(jù)類(lèi)中所定義的對(duì)象的特征,形成一個(gè)對(duì)象的過(guò)程。
注意: php 中,對(duì)象一定是通過(guò)類(lèi)的實(shí)例化來(lái)的。類(lèi)的地位,只是得到對(duì)象的方法。
PHP面向?qū)ο笕筇匦裕悍庋b、繼承、多態(tài)
進(jìn)階算法提高程序運(yùn)行的速度,而設(shè)計(jì)模式提高編程的速度。
php是面向?qū)ο蟮哪_本語(yǔ)言,而我們都知道,面向?qū)ο蟮恼Z(yǔ)言具有三大特性:封裝,繼承,多態(tài)。
PHP經(jīng)驗(yàn)總結(jié) - 聊聊面向?qū)ο?/p>
“現(xiàn)在大伙都在講面向?qū)ο缶幊?,但是我們也得先找著一個(gè)對(duì)象是不?不然怎么面向?qū)ο螅吭趺淳幊???--- 笑話一則,但是理不虧,要搞P面向?qū)ο缶幊?,我們起碼要先搞懂對(duì)象(還有類(lèi))是什么?只有了解它,理解它,你才能駕馭它。做編程的不能瞎搞,邏輯嚴(yán)謹(jǐn)清晰最重要,要明白我們?cè)谧鍪裁矗课倚枰鍪裁??我該怎么做?接下?lái),我來(lái)談?wù)凱HP類(lèi)和對(duì)象的認(rèn)知,然后說(shuō)一下我們應(yīng)該怎么用它們。
php面向?qū)ο笾衧elf和static的區(qū)別
可以看到,在調(diào)用 static,子類(lèi)哪怕調(diào)用的是父類(lèi)的方法,但是父類(lèi)方法中調(diào)用的方法還會(huì)是子類(lèi)的方法(好繞嘴。。)
在PHP5.3版本以前,static 和 self 還是有一點(diǎn)區(qū)別,具體是什么,畢竟都是7版本的天下了。就不去了解了。
總結(jié)呢就是:self 只能引用當(dāng)前類(lèi)中的方法,而 static 關(guān)鍵字允許函數(shù)能夠在運(yùn)行時(shí)動(dòng)態(tài)綁定類(lèi)中的方法。
PHP|關(guān)于對(duì)象復(fù)制的一些事
當(dāng)我們需要一個(gè)對(duì)象的副本時(shí),可以通過(guò) clone 關(guān)鍵字,使用值復(fù)制方式新生成一個(gè)對(duì)象。
但是這有一個(gè)問(wèn)題,對(duì)象中的某些數(shù)據(jù),比如 id,我不想是一樣的。但是 clone是做不到的。
這時(shí)我們可以通過(guò)實(shí)現(xiàn)一個(gè)特殊的方法 __clone() 來(lái)達(dá)到這個(gè)目的。當(dāng)一個(gè)對(duì)象調(diào)用clone關(guān)鍵字時(shí),其 __clone() 方法就會(huì)被自動(dòng)調(diào)用。
面向?qū)ο?關(guān)鍵字, 重點(diǎn) 必看
$this只能在成員方法中。$this主要用來(lái)調(diào)用成員屬性和成員方法;只能調(diào)用對(duì)象的東西。
self可以在所有方法中使用。self主要用來(lái)調(diào)用類(lèi)的常量、靜態(tài)屬性、靜態(tài)方法,只能調(diào)用類(lèi)的東西。
parent可以調(diào)用父類(lèi)的內(nèi)容:成員方法、靜態(tài)屬性、靜態(tài)方法、常量
static關(guān)鍵字修飾的屬性和方法,就是靜態(tài)屬性和靜態(tài)方法; 靜態(tài)屬性和靜態(tài)方法,是與某個(gè)類(lèi)相關(guān)的,與對(duì)象無(wú)關(guān)。 靜態(tài)屬性和靜態(tài)方法,不創(chuàng)建對(duì)象也能調(diào)用。
面向?qū)ο蟮膶?shí)例應(yīng)用:圖形計(jì)算器
Java 中的面向?qū)ο?/b>使用動(dòng)態(tài)頁(yè)面實(shí)現(xiàn)圖形計(jì)算器,可以計(jì)算給定圖形的周長(zhǎng)和面積
可以使用接口或抽象類(lèi)作為規(guī)范,再寫(xiě)各子類(lèi)的多態(tài)
簡(jiǎn)談我所理解的面向?qū)ο?/p>
眾多面向?qū)ο蟮木幊趟枷腚m不盡一致,但是無(wú)論哪種面向?qū)ο缶幊陶Z(yǔ)言都具有以下的共通功能。
不需要知道內(nèi)部的詳細(xì)處理就可以進(jìn)行操作(封裝、數(shù)據(jù)抽象)。
根據(jù)不同的數(shù)據(jù)類(lèi)型自動(dòng)選擇適當(dāng)?shù)姆椒ǎǘ鄳B(tài)性)。
Java 面向?qū)ο缶幊痰娜筇匦裕ǚ庋b、繼承、多態(tài))以及重寫(xiě)和重載
Java 面向?qū)ο缶幊逃腥筇匦裕悍庋b、繼承、多態(tài)。
封裝:隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外公開(kāi)訪問(wèn)方法,控制在程序中屬性的讀和寫(xiě)的訪問(wèn)級(jí)別。
繼承:可以理解為,在一個(gè)現(xiàn)有類(lèi)的基礎(chǔ)之上,增加新的方法或重寫(xiě)已有方法,從而產(chǎn)生一個(gè)新類(lèi)。
多態(tài):相同的事物,調(diào)用其相同的方法,參數(shù)也相同時(shí),但表現(xiàn)的行為卻不同。
Java 面向?qū)ο? 類(lèi) 對(duì)象 方法 變量 封裝
Java 面向?qū)ο? 構(gòu)造器 繼承 多態(tài)性 初始化塊
Javascript 中的面向?qū)ο?/b> 基礎(chǔ)溫故知新之javascript面向?qū)ο?/p>
類(lèi)和實(shí)例是大多數(shù)面向?qū)ο缶幊陶Z(yǔ)言的基本概念
類(lèi):類(lèi)是對(duì)象的類(lèi)型模板
實(shí)例:實(shí)例是根據(jù)類(lèi)創(chuàng)建的對(duì)象
但是,JavaScript語(yǔ)言的對(duì)象體系,不是基于“類(lèi)”的,而是基于構(gòu)造函數(shù)(constructor)和原型鏈(prototype)。了與普通函數(shù)區(qū)別,構(gòu)造函數(shù)名字的第一個(gè)字母通常大寫(xiě)。
JavaScript_面向?qū)ο蟪绦蛟O(shè)計(jì)
Object每個(gè)實(shí)例都會(huì)具有的屬性和方法:
Constructor:保存著用于創(chuàng)建當(dāng)前對(duì)象的函數(shù)。(構(gòu)造函數(shù))
hasOwnProperty(propertyName):用于檢測(cè)給定的屬性在當(dāng)前對(duì)象實(shí)例中(而不是原型中)是否存在。
isPrototypeOf(Object):用于檢查傳入的對(duì)象是否是另外一個(gè)對(duì)象的原型。
propertyIsEnumerable(propertyName):用于檢查給定的屬性是否能夠使用for-in語(yǔ)句來(lái)枚舉。
toLocaleString():返回對(duì)象的字符串表示。該字符串與執(zhí)行環(huán)境的地區(qū)對(duì)應(yīng).
toString():返回對(duì)象的字符串表示。
valueOf():返回對(duì)象的字符串、數(shù)值或布爾表示。
判斷一個(gè)對(duì)象是不是另一個(gè)對(duì)象的實(shí)例,通常使用的是 instanceof,比較少使用constructor。
JavaScript設(shè)計(jì)模式與開(kāi)發(fā)實(shí)踐 | 01 - 面向?qū)ο蟮腏avaScript
JavaScript在設(shè)計(jì)的時(shí)候,模仿Java引入了兩套類(lèi)型機(jī)制:基本類(lèi)型和對(duì)象類(lèi)型。
按照J(rèn)avaScript設(shè)計(jì)者的本意,除了undefined之外,一切都應(yīng)是對(duì)象。為了實(shí)現(xiàn)這一目標(biāo),number、boolean等幾種基本類(lèi)型數(shù)據(jù)可以通過(guò)“包裝類(lèi)”的方式變成對(duì)象類(lèi)型數(shù)據(jù)。
JavaScript絕大部分?jǐn)?shù)據(jù)都是對(duì)象。事實(shí)上,JavaScript中的根對(duì)象是Object.prototype對(duì)象。Object.prototype對(duì)象是一個(gè)空對(duì)象。JavaScript的每個(gè)對(duì)象,都是從Object.prototype對(duì)象克隆而來(lái)。
CoffeeScript—面向?qū)ο?/p>
細(xì)說(shuō) Javascript 對(duì)象自從面向?qū)ο蟮木幊趟枷氤霈F(xiàn)以來(lái),這個(gè)概念已經(jīng)被炒爛了,只要編程開(kāi)發(fā)大家都會(huì)拿面向?qū)ο髞?lái)說(shuō)事,好像只要跟面向?qū)ο笳催吘蜁?huì)顯得逼格很高一樣,不過(guò)確實(shí)逼格提高了。要知道,面向?qū)ο笾皇且环N手段,最終目的是為了提高我們項(xiàng)目的重用性、靈活性和擴(kuò)展性。
為了迎合面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,JavaScript也通過(guò)自己的語(yǔ)法實(shí)現(xiàn)了自己的一套面向?qū)ο髾C(jī)制。不過(guò)我想問(wèn)下,前端開(kāi)發(fā)當(dāng)中有多少人使用過(guò)面向?qū)ο螽?dāng)中的繼承?
JavaScript面向?qū)ο蟮膶?shí)現(xiàn)確實(shí)有點(diǎn)不倫不類(lèi)的感覺(jué)。下面先簡(jiǎn)單說(shuō)明下JavaScript當(dāng)中面向?qū)ο蟮膶?shí)現(xiàn),涉及的東西比較深,要對(duì)constructor、prototype有一定的理解,不然看起來(lái)會(huì)很吃力,或者你也可以跳開(kāi)這部分內(nèi)容,直接看CoffeeScript面向?qū)ο蟮膶?shí)現(xiàn)。
細(xì)說(shuō) Javascript 對(duì)象篇(一) : 對(duì)象的使用和屬性
一個(gè)經(jīng)常容易被誤解的就是數(shù)字常量不能視為對(duì)象,實(shí)際上數(shù)字常量仍然可以視為對(duì)象。這是因?yàn)?Javascript 解析器在解析點(diǎn)操作符時(shí)而將其視為浮點(diǎn)數(shù)特征而犯下的錯(cuò)誤。
細(xì)說(shuō) Javascript 對(duì)象篇(二) : 原型對(duì)象
Javascript 并沒(méi)有類(lèi)繼承模型,而是使用原型對(duì)象 prototype 進(jìn)行原型式繼承。
盡管人們經(jīng)常將此看做是 Javascript 的一個(gè)缺點(diǎn),然而事實(shí)上,原型式繼承比傳統(tǒng)的類(lèi)繼承模型要更加強(qiáng)大。舉個(gè)例子,在原型式繼承頂端構(gòu)建一個(gè)類(lèi)模型很簡(jiǎn)單,然而反過(guò)來(lái)則是個(gè)困難得多的任務(wù)。
Javascript 是唯一一個(gè)被廣泛運(yùn)用的原型式繼承的語(yǔ)言,所以理解兩種繼承方式的差異是需要時(shí)間的。
細(xì)說(shuō) Javascript 對(duì)象篇(三) : hasOwnProperty
判斷一個(gè)屬性是定義在對(duì)象本身而不是繼承自原型鏈,我們需要使用從 Object.prototype 繼承而來(lái)的 hasOwnProperty 方法。
hasOwnProperty 方法是 Javascript 中唯一一個(gè)處理對(duì)象屬性而不會(huì)往上遍歷原型鏈的。
細(xì)說(shuō) Javascript 對(duì)象篇(四) : for in 循環(huán)
進(jìn)階如同 in 運(yùn)算符一樣,使用 for in 循環(huán)遍歷對(duì)象屬性時(shí),也將往上遍歷整個(gè)原型鏈。
這里我們要注意兩點(diǎn),一是 for in 循環(huán)會(huì)忽略 enumerable 設(shè)置為 false 的屬性。例如一個(gè)數(shù)組的 length 屬性。第二是,由于 for in 會(huì)遍歷整個(gè)原型鏈,所以當(dāng)原型鏈過(guò)長(zhǎng)時(shí),會(huì)對(duì)性能造成影響。
JavaScript學(xué)習(xí)總結(jié)(五)原型和原型鏈詳解
原型鏈:當(dāng)從一個(gè)對(duì)象那里調(diào)取屬性或方法時(shí),如果該對(duì)象自身不存在這樣的屬性或方法,就會(huì)去自己關(guān)聯(lián)的prototype對(duì)象那里尋找,如果prototype沒(méi)有,就會(huì)去prototype關(guān)聯(lián)的前輩prototype那里尋找,如果再?zèng)]有則繼續(xù)查找Prototype.Prototype引用的對(duì)象,依次類(lèi)推,直到Prototype.….Prototype為undefined(Object的Prototype就是undefined)從而形成了所謂的“原型鏈”。
Javascript面向?qū)ο缶幊蹋ǘ簶?gòu)造函數(shù)的繼承
上面是采用prototype對(duì)象,實(shí)現(xiàn)繼承。我們也可以換一種思路,純粹采用"拷貝"方法實(shí)現(xiàn)繼承。簡(jiǎn)單說(shuō),如果把父對(duì)象的所有屬性和方法,拷貝進(jìn)子對(duì)象,不也能夠?qū)崿F(xiàn)繼承嗎?這樣我們就有了第五種方法。
面向?qū)ο?非構(gòu)造函數(shù)的繼承
除了使用“prototype”鏈以外,還有另一種思路:就是把父對(duì)象的屬性,全部拷貝給子對(duì)象,也能實(shí)現(xiàn)繼承。
理清javascript中的面向?qū)ο螅ㄒ唬屠^承
與其它編程語(yǔ)言不一樣的是,javascript的面向?qū)ο蟛⒎且蕾囉诔橄蟮念?lèi),而是通過(guò)原型鏈,將一個(gè)個(gè)具體的對(duì)象實(shí)例進(jìn)行連接,位于原型鏈下游的對(duì)象實(shí)例可以讀取/使用位于上游的對(duì)象實(shí)例的屬性/方法。
下文由簡(jiǎn)及深,試圖一步步理清javascript面向?qū)ο蟮谋举|(zhì)。
javascript對(duì)象詳解:__proto__ 和 prototype 的區(qū)別和聯(lián)系
函數(shù)是js中的一等公民,js在創(chuàng)建對(duì)象的時(shí)候,都有一個(gè)叫做__proto__的內(nèi)置屬性,用于指向創(chuàng)建它的函數(shù)對(duì)象的原型對(duì)象prototype。只有函數(shù)有prototype, 當(dāng)你創(chuàng)建一個(gè)函數(shù)時(shí),js會(huì)自動(dòng)為這個(gè)函數(shù)加上prototype屬性,值是一個(gè)空對(duì)象。
JavaScript深入之創(chuàng)建對(duì)象的多種方式以及優(yōu)缺點(diǎn)
優(yōu)點(diǎn):該共享的共享,該私有的私有,使用最廣泛的方式
缺點(diǎn):有的人就是希望全部都寫(xiě)在一起,即更好的封裝性
js面向?qū)ο缶毩?xí)-拖拽效果
普通方法變形
盡量不要出現(xiàn)函數(shù)嵌套函數(shù)
可以有全局變量
把onload函數(shù)中不是賦值的語(yǔ)句放到多帶帶函數(shù)中
改成面向?qū)ο?/p>
全局變量就是屬性
函數(shù)就是方法
onload中創(chuàng)建對(duì)象
改this指針問(wèn)題
談?wù)?javascript 面向?qū)ο蟮囊恍┘?xì)節(jié)問(wèn)題
JavaScript面向?qū)ο笾R(shí)點(diǎn)小結(jié)
一張圖秒懂原型鏈查找,這個(gè)是理解js原型繼承的關(guān)鍵
社區(qū)技術(shù)群SegmentFault 官方目前開(kāi)放的微信技術(shù)群如下:
SF.GG 后端攻城獅交流群
SF.GG 前端攻城獅交流群
SF.GG 北京技術(shù)交流群
SF.GG 上海技術(shù)交流群
SF.GG 廣州技術(shù)交流群
SF.GG 深圳技術(shù)交流群
SF.GG 杭州技術(shù)交流群
以上群組僅限程序員加入,需要入群的小伙伴請(qǐng)?zhí)砑庸芾韱T微信好友:mgr_segmentfault,備注『群名稱+SF用戶ID』,審核成功后會(huì)拉你進(jìn)入相應(yīng)技術(shù)群。
本期完
:)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/84881.html
摘要:很多情況下,通常一個(gè)人類(lèi),即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類(lèi)是相似對(duì)象的描述,稱為類(lèi)的定義,是該類(lèi)對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過(guò)對(duì)類(lèi)的實(shí)體化形成的對(duì)象。一類(lèi)的對(duì)象抽取出來(lái)。注意中,對(duì)象一定是通過(guò)類(lèi)的實(shí)例化來(lái)的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:很多情況下,通常一個(gè)人類(lèi),即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類(lèi)是相似對(duì)象的描述,稱為類(lèi)的定義,是該類(lèi)對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過(guò)對(duì)類(lèi)的實(shí)體化形成的對(duì)象。一類(lèi)的對(duì)象抽取出來(lái)。注意中,對(duì)象一定是通過(guò)類(lèi)的實(shí)例化來(lái)的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:標(biāo)簽怎么樣下的日志怎么樣,好不好,洛杉磯安暢服務(wù)器,電信聯(lián)通走,移動(dòng)直連,美國(guó)原生,可解鎖奈菲。歡迎所有新老客戶參與此優(yōu)惠活動(dòng)。VpsMS怎么樣,VpsMS好不好,VpsMS洛杉磯安暢GIA-CN2服務(wù)器,電信聯(lián)通走GIA CN2,移動(dòng)直連,美國(guó)原生ip ,可解鎖奈菲。 七夕活動(dòng),原諒他77次之2021七夕活動(dòng),詳情如下: 七夕將至,VpsMS團(tuán)隊(duì)為答謝廣大客戶一年多以來(lái)對(duì)本站的支持...
摘要:安暢線路方面,電信聯(lián)通走,美國(guó)安暢七折優(yōu)惠不超售帶寬月起美國(guó)安暢七折優(yōu)惠不超售帶寬月起是一家主營(yíng)美國(guó)洛杉磯服務(wù)器的商家,線路為美國(guó)安暢,全線采用架構(gòu)配備vpsms怎么樣?vpsms洛杉磯安暢GIA-CN2服務(wù)器,電信聯(lián)通走GIA CN2,移動(dòng)直連,美國(guó)原生ip ,可解鎖奈菲。七夕活動(dòng),原諒他77次之2021七夕活動(dòng),詳情如下:七夕將至,VpsMS團(tuán)隊(duì)為答謝廣大客戶一年多以來(lái)對(duì)本站的支持,即日...
閱讀 1355·2021-11-15 11:45
閱讀 3122·2021-09-27 13:36
閱讀 2866·2019-08-30 15:54
閱讀 984·2019-08-29 12:38
閱讀 2905·2019-08-29 11:22
閱讀 2983·2019-08-26 13:52
閱讀 2025·2019-08-26 13:30
閱讀 584·2019-08-26 10:37