物件導向2

2022-08-09 08:15:10 字數 1923 閱讀 4874

1.物件導向的目的就是生成物件object

2.  生成物件的方式

(1)  單例模式(字面量定義) var obj={}

(2) 類的例項    var obj=new object()

(3)    工廠模式

(4) 建構函式: 扮演三種角色 普通函式       普通的物件        類

工廠模式,生成的物件必須要返回,建構函式模式不用return,建構函式模式預設return的是this,在建構函式內的this就是例項物件。

建構函式如果認為return的不是物件,直接忽略,如果人為return的是物件,就取代this。

工廠模式生成的例項物件的__proto__直接指向基類object的原型

建構函式生成的例項物件的__proto__指向他父類的原型,然後父類的原型上的__proto__指向基類object的原型。

每個例項和例項之間都是獨立的個體,他們之間的屬性互不干擾,是不等的,如果例項和例項之間的屬性相等,則這個屬性必須是父類的原型上的屬性。是因為父類原型上的屬性是可繼承的,是共享的。

在操作obj.屬性的時候,首先看這個屬性是私有的還是從父類的原型上繼承的,如果是私有的直接使用,如果是私有的直接使用,如果私有的沒有呢就檢視父類的原型上有沒有,如果有就直接使用,如果沒有呢,再次向父類的父類的原型上查詢,一直查到基類object上為止,如果object也沒有就得到undefined。這就是原型鏈。

例項的__proto__上的屬性

instanceof判斷物件是不是這個類的例項物件

isprototypeof()判斷例項物件是否是父類的原型

getprototypeof()獲取例項物件的原型

hasownproperty()判斷乙個屬性是不是自身(私有)的屬性

in判斷乙個屬性是不是這個物件上的不管是私有的還是公有的

例項物件的原型就是他父類的原型

如果不給類的原型指定乙個物件,這個例項物件的__proto__上有乙個constructor的屬性。

如果給這個類的原型指定了乙個物件,例項上的__proto__就沒有constructor屬性了。

this指向問題

1.this是乙個物件,函式外的this都指向window,

2.函式內的this,他的指向跟函式呼叫有關,看函式前面有沒有.有點就指向.前面的物件,沒有就指向window。

3.定時器的this永遠是window,自執行函式裡的this是window。

4.建構函式裡的this和原型上的this都是指向例項物件

改變this指向的方法

提前將this賦值

call

bind bind是只改變前面函式的this,但是不執行前面的函式,需要加乙個()才執行

繼承1.      call繼承    子類繼承父類

將父類的私有屬性繼承位子類的私有屬性

2.原型繼承     將父類的私有和公有屬性都繼承為子類的公有屬性

子類的原型=父類的例項       b.prototype=new a()

物件導向2

6 static關鍵字 用法 是乙個修飾符,用於修飾成員 當成員被靜態修飾後,就多了乙個呼叫方式,除了可以被物件呼叫外,還可以直接被類名呼叫。類名.靜態成員 static特點 static成員 也叫 類變數 1 隨著類的載入而載入 也就是說 靜態會隨著類的消失而消失。說明它的生命週期最長 2 優先於...

物件導向2

一.昨日內容回顧 1.匿名函式 lambda 引數 返回值 def chi return 飽了 lambda 飽了 2.sorted 排序 sorted iterable,key function,reverse false 3.filter 篩選 filter function,iterable ...

物件導向 2

1.物件導向的三大特性 封裝 繼承 多型。一 封裝 1.封裝的學習就是學習類成員的訪問許可權的控制。是設計類的時候需要考慮的問題。概念 通過對類中的成員的訪問許可權的控制,實現對外部類的訪問的可見和隱藏的控制的過程。2.類成員的訪問許可權的控制,通過訪問許可權修飾符來控制。可以在類成員的前面新增訪問...