bind函式 手寫bind this指向問題

2021-10-11 06:08:47 字數 565 閱讀 4173

要手寫bind,首先要很熟悉bind的工作邏輯和原理

先寫個例子來看一下bind的使用

// 利用bind改變fn的this指向

執行結果

bind函式會返回乙個新函式,需要fn1來接收一下,bind把函式的this繫結到了newobj物件上

所以寫bind得先看一下內部是怎麼操作的

邏輯:1、bind有個返回函式

2、接收n多個引數,第乙個引數是this,後面的引數是可以有很多

3、把乙個函式的this指向另乙個函式,或者說是乙個函式繼承另乙個函式的屬性方法包括this

直接寫**:

// bind方法是function.prototype 原型鏈上的方法
利用上面bind1的方法試一下,得到的結果:

js 手寫 bind 函式

首先,bind 函式是乙個函式函式呼叫bind 這裡簡稱fn 之後,返回給你乙個新的函式,在bind 裡面不是直接執行你傳入的這個 fn,而是在bind 返回給你的函式裡面執行這個函式,有點繞,給大家用 說下 function.prototype.bind function functiona le...

手寫 call apply 及 bind 函式

function.prototype.mycall function context context context window context.fn this 建立fn屬性,並將值設定為需要呼叫的函式 const args arguments slice 1 因為call可以傳入多個引數作為呼叫...

手寫乙個bind函式(大概)

昨天搜了下bind怎麼實現,大家都在說bind的特徵啊啥的,沒搜到,今天有人問起來,我反問他要咋搜,他和我說柯里化。柯里化!它的最常用的表現形式不就是傳說中的閉包的其中一種嘛!i think i can do it 我覺得我可以嘗試著實現一下。首先我們來回想this指向的幾種可能性 當函式作為乙個物...