JS筆記 part3(物件導向)

2021-09-09 06:23:47 字數 2297 閱讀 5226

物件導向的本質是對面向過程的封裝

物件導向三大特徵:封裝、繼承、多型將某個具體功能封裝在物件中,對外部暴露指定的介面,外界使用時無需考慮內部是如何實現的

function

person

(name,age,country)

var person1 =

newperson

('lin'

,'30'

,'china');

console.

log(person1.name)

;//lin

乙個物件可以擁有其他物件的屬性和方法,通過混入+替換原型的方式繼承

例1

var car =

car.energy =

'gasoline'

;function

audi()

;for

(var key in car)

var audi =

newaudi()

;console.

log(audi.tyre)

;//4

console.

log(audi.energy)

;//gasoline

例2

function

car(

)car.prototype.energy =

'gasoline'

;function

audi()

;audi.prototype =

newcar()

;audi.prototype.constructor = car;

var audi =

newaudi()

;console.

log(audi.tyre)

;//4

console.

log(audi.energy)

;//gasoline

乙個物件在不同情況下的多種狀態

vara=

}varb=

}varc=

}function

go(fn)}go

(a);

//start ago(

b);//start bgo(

c);//start c

原型(prototype)

每個建構函式在建立時都會生成與之對應的原型物件。由該建構函式例項化的物件可以訪問這個原型中的屬性與方法。

//名為human的建構函式

function

human()

//建構函式原型中新增乙個屬性

human.prototype.essence =

'repeater'

;var somebody =

newhuman()

;console.

log(somebody.essence)

;

__proto__

是例項化物件訪問原型的方法,該方法不是w3c標準屬性所以一般不使用__proto__來訪問原型

原型鏈因為原型物件本身也是物件,所以原型也有它的原型,這樣乙個鏈式結構稱為【原型鏈】。內建物件(array、date、string…)的原型都指向object.prototype,建構函式是object。

constructor

屬於原型物件,指向這個原型對應的建構函式,可以得知某個例項物件到底是由哪個建構函式生成的。

var somebody =

newhuman()

;console.

log(somebody.constructor)

;

instanceof運算子

檢測建構函式的原型prototype在不在這個物件的原型鏈上(驗證乙個物件是不是指定的建構函式的例項)。

只能檢測物件,所以檢測基本資料型別(string,number等)無效

functionfn(

)};var arr =

;var fn1 =

newfn()

;console.

log(arr instanceof

array);

//true

console.

log(fn1.jump instanceof

function);

//true

console.

log(fn1 instanceoffn)

;//true

(part 3) 物件導向程式設計的幾個難點(一)。

很多人都會說 建構函式不就是在新建 構造 乙個物件的時候呼叫一下嗎 這有啥可講的 class student int main 樣例,利用建構函式來進行給b賦初值。但是假如有乙個student類n和n1,這個時候你就會發現乙個有趣的事情,如果你要讓n中的資料等於n1,你恐怕要寫很多語句。這時候就是拷...

Gentoo安裝筆記(part3

此安裝筆記是按照gentoo中文手冊上實際操作記下來的,使用的是宿主機ubuntu9.04 virtualbox3.04,在virtualbox3.04中按預設屬性建立了乙個gentoo虛擬機器。使用gentoo minimal映像檔案安裝。6.開始安裝gentoo 1 選擇乙個合適的映象站點 mi...

Python學習筆記 part 3

ide vscode python版本 python3.6 學習教材 python程式設計從入門到實踐 人民郵電出版社 操作列表 for a in b 構建了python的for迴圈,迴圈方式為每次從列表b中取出乙個元素存入a。例如 idiols chen ju liu for idiol in i...