This學習實現call apply bind

2021-10-09 04:01:51 字數 1827 閱讀 5619

不說太多,直入主題

由淺入比淺深一點

function

test

(str)

let obj =

…(才疏學淺,歡迎補充與建議)

實現步驟

只在函式上實現該功能

確定所傳物件有效

將當前函式this繫結到該物件上

執行該物件繫結的此函式

function.prototype.

mycall

=function

(context,

..arges)

is not function`)}

const context =

object

(context)

||window;

//防止傳入的context為null或是undefined

context.fn =

this

; context.fn(

...arges)

delete context.fn

}test.

mycall

(oobj,

'mycall -'

)//mycall -this

實現步驟

在function的原型鏈上實現該方法(arges區別與call)

只在函式上實現該功能

確定所傳物件有效

將當前函式this繫結到該物件上

執行該物件繫結的此函式

function.prototype.

=function

(context,arges)

is not function`)}

const context =

object

(context)

||window;

//防止傳入的context為null或是undefined

context.fn =

this

; context.fn(

...arges)

delete context.fn

}test.

(oobj,

)

//內部利用了mycall

function.prototype.

mybind

=function

(context,

...arges)

bindfn.prototype = that.prototype;

return bindfn;

}let testfn = test.

mybind

(obj,

'mybind -'

)testfn()

//mybind - this

function.prototype.

mybind

=function

(context,

...arges)

bindfn.prototype = that.prototype;

return bindfn;

}let testfn = test.

mybind

(obj,

'mybind -'

)testfn()

//mybind - this

關鍵的實現步驟,怎麼實現函式可以直接呼叫與怎麼把this繫結到所傳物件上。同時還要區別與這三種方式不同點。

歡迎指正批評!!!

Python學習 佇列實現

class queue object def init self 建構函式 主要用來在建立物件時初始化物件,即為物件成員變數賦初始值 self.data list def init queue self 但是我就很不明白這是幹嘛的,刪除它,然後執行也沒什麼錯誤。self.data list def ...

Python 實現深度學習

寫在最前,我把 和整理的文件放在github上了 最近由於疫情被困在家,於是準備每天看點專業知識,準備寫成部落格,不定期發布。知道事物的表面現象,不知事物的本質及其產生的原因是一件很可悲的事情,正如魯迅所說 what i cannot create,i do not understand.只有親自實...

iOS學習 二 實現直播技術學習

一 流 技術的含義 回放方式而言的,指的是一種從 internet 二 hls協議 hls協議的實現過程 根據以上的了解,想要實現hls直播,需要研究並實現以下技術關鍵點 對原始資料進行h.264編碼和aac編碼 hls分段生成策略及m3u8索引檔案 http傳輸協議 三 rtsp協議 與負責傳送資...