js中call,apply和bind方法

2021-09-17 19:02:47 字數 957 閱讀 9133

語法 :任意函式.call(任意物件,引數1,引數2…)

特徵:call能呼叫函式,後面可傳入多個引數,用逗號隔開

3.價值:任意物件都能呼叫任意函式(功能)

function fn(a, b) 

var obj2 = ;

fn.call(obj2, '你好', 6);

這樣就能為obj2新增乙個屬性abc,值為「你好6」。原因是使用call改變了call的this指向,fn.call(obj2, 『你好』, 6)中通過call把呼叫函式fn的物件設定為obj2,故函式內為this新增屬性即為this指向的obj2新增屬性abc。

價值和call一樣,語法略微不同

語法 :任意函式.call(任意物件,[引數1,引數2…]),只允許傳遞兩個引數,第二個引數為陣列

* 第乙個引數 表示呼叫的物件,

* 第二個引數 借用時候傳遞的資料(陣列)

**/

var arr = [11, 22, 33, 44, 55, -99];

var obj={}

此處借用math的內建方法,第乙個引數對於我們的運算沒有影響,min和min1是相等的。但是如果要在函式內部使用this進行運算的話,第乙個引數則需要多加考慮。

var box = document.queryselector('#box');

var num = 0;

box.onclick = function () .bind(this), 24);

}

上面**,通過bind改變了函式內部的this指向,達到了 (定時器外:var that=this;定時期器內:that.style.left=num+『px』)的效果

js 中call apply和bind的區別與聯絡

1 都是用來改變函式的this物件的指向的。2 第乙個引數都是this要指向的物件。3 都可以利用後續引數傳參。var xw var xh xw.say 輸出是小王,男,今年24 而如果我們想用xw的say方法顯示xh的資料,則 1 call xw.say.call xh 3 bind xw.say...

js中call,apply與bind三函式

func.call thisvalue,arg1,arg2,第乙個引數就是this所要指向的那個物件,後面的引數則是函式呼叫時所需要的引數 例 function add a,b add.call this,1,2 call方法的乙個應用是呼叫物件的原生方法 var obj obj.hasownpro...

js深入之call apply和bind模擬實現

var foo function fn fn.call foo 1注意 1 call改變了this的指向,指到foo 2 fn函式執行 即可將上面的 改變成下面這種形式 var foo foo.fn 1即將fn作為物件foo的屬性,然後進行呼叫。則可總結出模擬實現的步驟 1 將函式設定為物件的屬性,...