js中call,apply,bind之間的區別

2022-02-10 13:39:08 字數 607 閱讀 1438

var xw = 

}var xh =

xw.say();

複製**

本身沒什麼好說的,顯示的肯定是小王 , 男 , 今年24。

那麼如何用xw的say方法來顯示xh的資料呢。

對於call可以這樣:

xw.say.call(xh);

複製**

複製**

而對於bind來說需要這樣:

xw.say.bind(xh)();

複製**

var xw = 

}var xh =

複製**

對於call來說是這樣的

xw.say.call(xh,"實驗小學","六年級");

複製**

複製**

那麼bind怎麼傳參呢?它可以像call那樣傳參。

xw.say.bind(xh,"實驗小學","六年級")();

複製**

但是由於bind返回的仍然是乙個函式,所以我們還可以在呼叫的時候再進行傳參。

xw.say.bind(xh)("實驗小學","六年級");

例子**於:

This學習實現call apply bind

不說太多,直入主題 由淺入比淺深一點 function test str let obj 才疏學淺,歡迎補充與建議 實現步驟 只在函式上實現該功能 確定所傳物件有效 將當前函式this繫結到該物件上 執行該物件繫結的此函式 function.prototype.mycall function con...

如何模擬實現乙個call apply bind函式

call模擬實現 首先我們實現繫結this功能。比如我們有乙個foo函式 function getname 還有乙個wechat物件 const wechat 我們希望實現 getname.call wechat fedaily以wechat和getname這個為例,這裡的this即getname,...

js之旅(七)js中this

本文講述js中this的指向 介紹es5和es6中this的不同 在js es5中,使用的是function函式,誰在呼叫function,this就指向誰,有以下幾個特點 1.1 this最終指向的是呼叫它的物件 這個特點的就是es5中this的指向,其它特點都是對它的補充,如下示例 functi...