實現簡版 call

2022-09-15 16:54:14 字數 382 閱讀 9200

在學習 this 指向時,我們知道如果乙個函式作為物件的方法執行時,this 指向這個物件

那麼實現 call 可以參考這個思路

1. 在物件上新增函式

2. 執行物件方法

3. 刪除為了改變 this 而在物件上新增的函式

實現如下

1

//這裡要用 function 不能用箭頭函式,要通過 this 獲取呼叫 mycall 的函式

2 function.prototype.mycall = function

(ctx, ...args)

以上實現還有優化空間,比如假如已經存在 callfunc 屬性怎麼辦,可以取乙個唯一的名字,比如 symbol、隨機數、隨機字串、時間戳等等

極簡版shared ptr實現

程式如下 標頭檔案 ifndef pch h define pch h include includeusing namespace std class like shared ptr 接受指標的建構函式 like shared ptr string a location a number new ...

簡談python中的 call

最近在思考 call 和類方法的使用場景,雖然功能會有重疊,但凡存在的必是合理的,肯定會有輕微的不同,看了django以及部分框架的設計原始碼,各有各的設計風格,本著功能邊界的看法,所以做個總結。classa def init self,a,b self.a a self.b b defdo sta...

原生js實現Promise(簡版 公升級版)

js 實現 promise 之前查閱了幾篇blog作為參考,最終參考了 mdn語法的理解 var executor function resolve,reject new promise executor promise建構函式 接收的乙個executor函式 executor函式 接收兩個引數 r...