封裝call bind()apply

如何封裝一個(gè)函數(shù)達(dá)到call(),bind(),apply()同樣的效果呢?
var obj = {
name: '張三',
age: 24,
fn: function (a, b) {
console.log(this.name, a, b);
}
}
var sc = {
name: '李四',
}

封裝call

Function.prototype.mycall = function (newobj, argus) {
    var newname = Symbol(this.name);
    newobj[newname] = this;
    var val = newobj[newname](...argus);
    delete newobj[newname];
    return val;
}

obj.fn.mybind(sc,'hh','kk');

封裝apply

Function.prototype.myapply = function (newobj, arg) {
    var newname = Symbol(this.name);
    newobj[newname] = this;
    var val = newobj[newname](...arg);
    delete newobj[newname];
    return val;
}
 obj.fn.mybind(sc,【'hh','kk'】);

封裝bind()

Function.prototype.mybind=function(newobj,...arg){
var that=this;
return function(){
    that.myapplay(newobj,arg.concat(...arguments));

 }

}   
 var ss=obj.fn.mybind(sc,'dd');
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些閱讀 2,132評(píng)論 0 2
  • 單例模式 適用場(chǎng)景:可能會(huì)在場(chǎng)景中使用到對(duì)象,但只有一個(gè)實(shí)例,加載時(shí)并不主動(dòng)創(chuàng)建,需要時(shí)才創(chuàng)建 最常見的單例模式,...
    Obeing閱讀 2,311評(píng)論 1 10
  • 為什么需要這些?主要是因?yàn)閠his,來看看this干的好事。 box.onclick = function(){f...
    bo_bo_bo_la閱讀 344評(píng)論 0 1
  • 函數(shù)的調(diào)用方式?jīng)Q定了 this的指向不同: 1. 普通函數(shù)調(diào)用,此時(shí)this指向window function f...
    yuanjiex閱讀 1,556評(píng)論 0 2
  • “are you確定???你是上帝?”我的世界觀徹底崩潰了?!翱龋瑲g迎來到天堂,在我確認(rèn)完你的身份后,你便可以像正...
    蝶夢(mèng)雪冉閱讀 232評(píng)論 1 3

友情鏈接更多精彩內(nèi)容