call ,apply 和 bind的用法與區別

2022-07-17 04:06:11 字數 535 閱讀 2808

作用都是一樣的,官方解釋:「呼叫乙個物件的乙個方法,以另乙個物件替換當前物件」, 簡單來說就是改變當前使用該方法的物件中的this指向;

var xw =

}var xh =

xw.say.call(xh);

//小紅,女,今年12

小紅,女,今年12

xw.say.bind(xh);//

function()

}var xh =

xw.say.call(xh,"實驗小學","六年級");//小紅,女,今年12,在實驗小學上六年級

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

function

aa(a)

aa("output in aa"); //

output in aa this指a,arguments指a,也就是傳入的引數

var a =}}

var b =a.fn;

null);

call apply和bind的原理

call 作用 call 方法就是使用乙個指定this值和若干個指定引數值的前提下呼叫摸個函式或方法。var foo function bar 如果不對this進行繫結執行bar 會返回undefined bar.call foo 1也就是說call 改變了this的指向,指向了foo 下面進行一下...

call apply和bind的用法

在改變this指向的時候,經常會把這三個方法混淆,下面就詳細的整理一下三者的用法和區別 var a var b b.sayname.call a,1,2,3 輸出 張三 6第乙個引數是改變 this 指向的物件 第二個引數必須是乙個陣列 使用後會自動執行 var a var b var arr 1,...

call apply和bind方法詳解

call方法 使用乙個指定的this值和單獨給出的乙個或多個引數來呼叫函式。var obj function getname name getname.call obj mei var obj function getname name,age 這兩種方法的用途很多,下面我就舉幾個例子。1.基本用法...