也談如何實現bind apply call

2022-07-17 10:06:09 字數 916 閱讀 2440

本文先給出如下類定義和例項定義。

// person類,每個人有姓名,有列印姓名的方法

function person(_name)

}// 兩個例項

let alex = new person('alex')

let bob = new person('bob')

不妨先回顧一下bind的使用方法:

let saybobname = alex.saymyname.bind(bob, '?')

saybobname() // bob?

可見:

了解了這兩點,就不難寫出實現:

function mybind(context, ...args) 

}function.prototype.bind = mybind

在實現bind的過程中我們用到了call。那麼如何實現乙個call?不妨也回顧一下call的使用方法:

alex.saymyname.call(bob, '!') // bob!
可見:

了解了這兩點,也不難寫出實現:

function mycall(context, ...args) 

function.prototype.call = mycall

故可寫出實現:

return mycall(context, ...args)

}

bind

/ \ 兩兩都可互相實現的三角形!

簡單!立即執行這個函式副本就可以了!

function anothermycall(context, ...args)

也談武媚娘

前段時間電視熱播 武媚娘 老婆天天晚上看。我不大喜歡看各種誇張和粉飾的歷史劇,但是對歷史還是喜歡一些,所以就利用閒餘的時間搜尋一下,看看唐朝的那些事。正好把自己的搜尋和感慨整理記錄下。唐朝是乙個中國發展的乙個鼎盛時期,即便如此,也是乙個多事的朝代。李世民宣武門弒兄,自己逼迫父親成為了太上皇,兒子李志...

也談如何縮小SQL SERVER日誌檔案

前幾天也碰到日誌檔案過大的問題,資料庫實際大小為600m,日誌檔案實際大小為33m,但日誌檔案占用空間為2.8g 試了多種方式,shirnk database,truncate log file,都沒辦法將檔案縮小。無論如何,這應該算sql server的乙個bug吧。後來找到下面的 就可以將日誌檔...

也談內容引擎,內容如何為王?

acpu的好文 網際網路suvivor第二輯 功能化競爭走向內容化競爭。問題的提出,內容如何為王?提出了 內容如何為王 的問題,在web2.0的背景之下,它包括了兩個方面,一是個人化的內容,如何在海量內容中脫穎而出 二是內容的平台,如何在內容的層面上培養使用者群體。他的力作 談內容引擎的目的,在個性...