自己實現乙個call apply bind方法

2022-09-06 11:36:17 字數 861 閱讀 4149

1、call的實現

思路,js中this是根據上下文來決定的,如果是乙個方法,this指向這個方法被呼叫的物件

//

如何自己實現乙個call

function.prototype.mycall = function

() )

//this相當於上面的a

obj['fn'] = this;

//獲取call第二個開始的引數

//相當於k.a, 即將a的this指向k

obj['fn'](...args);

delete obj['fn'];

}function

a(n)

var k =

a.mycall(k, 1);

function.prototype.mycall = function

()

//

() )

//this相當於上面的a

obj['fn'] = this;

//獲取call第二個開始的引數

//相當於k.a, 即將a的this指向k

obj['fn'](...args);

delete obj['fn'];

}function

a(n, p)

var k =

或()

3、實現乙個bind

function.prototype.mybind = function

(object)

}

function.prototype.mybind = function

()

自己實現乙個Redux。

redux是乙個用於狀態管理的js框架,是flux架構的一種實現 如圖 reducer 為乙個使用者自定義的函式,在store分發 dispacth action時提供處理方法去更新狀態樹中的狀態。應該為乙個純函式。action 為乙個使用者自定義的物件,裡面包含乙個type屬性,標識乙個動作型別。...

自己實現乙個printf函式

在arm嵌入式開發環境中,串列埠一般使用arm pl011的uart實現,uart的實現原理就是實現了乙個8bits寬度,32深度的fifo,不停的往螢幕輸出乙個byte,乙個byte。這個就是硬體的實現,那麼軟體是怎麼實現列印 高階程式語言中定義的char,short,int,long,float...

自己實現乙個 atoi 函式

情況一 輸入的字元包含不是數字字元的字元?例如 123adc4 針對這種情況,我們只要加上判斷就行了,只要遇到不是數字字元的直接返回。情況二 如果在數字字元前面有正負號又該怎麼辦?例如 123 123 針對這種情況,我們再加上判斷,判斷字串的第乙個字元是不是正負號,並用乙個標記位flag記錄正負。情...