JS物件導向基礎 內建類 自定義類建立的底層機制

2021-10-06 03:16:10 字數 931 閱讀 3490

物件導向思想,圍繞物件、類、例項的概念與關係展開~

物件、類、例項的概念可以按照自然界中類別和個體的概念進行理解。

至於物件——萬物皆物件~

dom元素類:每乙個dom元素物件也有自己的類和祖先類

檢視dom元素物件的類和祖先類,可以在控制台dir(獲得的元素物件),沿著原型鏈__proto__檢視。

真實開發中,為實現需求,還需要自己構建一些自定義類。

自定義類是啥呢?其實就是乙個函式,建立的時候和普通函式沒啥差別,我們把它當作建構函式執行,這個函式就稱為乙個"類"了。

function func(x,y)

let f1 = func(10,20); // 當作普通函式執行

let f2 = new func(10,20); // 當作建構函式執行

我們在之前已經了解了普通函式執行的底層機制,我們通過上面的例子簡單回顧一下:

形成私有上下文 ec(func)

初始化作用域鏈

初始化this指向 this->window

初始化實參集合arguments [10,20]

形參賦值 x = 10, y = 20

變數提公升 - -

**執行

建構函式執行與普通函式執行有啥不一樣的喃?

大部分流程都是一樣的,畢竟建構函式也是函式嘛;只不過建構函式的執行多了那麼幾個步驟:

1. 初始化作用域鏈之後,預設建立乙個物件,這個物件就是當前類的乙個例項。

2. 讓this指向這個例項。

3. 函式沒有返回值的情況下,預設把建立的例項返回;若返回值為基本型別(沒啥用),仍然返回建立的例項;返回值為引用型別值,它將把建立的例項覆蓋掉並且返回自己寫的這個結果。

在例子中,需要注意以下幾點:

js自定義類

一 三種方式模擬 類 1 工廠方式 function cat return cat 使用 var mycat cat 2 建構函式方式 function cat 使用 var mycat new cat 3 原型方式 該方式利用了物件的prototype屬性。首先用空函式建立類名,然後所有的屬性和方...

Object 類物件轉成自定義類物件

工作中遇到這樣的問題,某個物件的中的某個字段,設計不合理,該字段本應該是定義成乙個 物件直接用hibernate關聯,但是有時被定義成string型別,又不能直接修改欄位的型別 sql從表中查出一條記錄,有時關聯了幾個表,這時得到的物件一般是object型別 這時查詢到的ckreinvestalis...

筆記 js內建物件及自定義物件

內建物件 string math date array event string str.length str.charat 5 str.indexof 找不到返回 1 str.tolowercase str.touppercase str.substring 3,6 str.replace mat...