在學習 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...