當我們呼叫乙個函式的時候,函式中的this一般是指向呼叫者的。但是我們其實可以在呼叫函式的時候,傳入乙個物件,讓函式中的this指向我們傳入的物件,而不是呼叫者本身。
例:var name = 'tom';
var obj = ;
function fun();
function fun1(age)
fun1(11);
fun1.call(obj,11);
輸出:tom11 jack11 jack11
var name = 'tom';
var obj = ;
function fun2(age)
var fun3 = fun2.bind(obj);
fun3(11);
輸出:bindjack11
es5 bind和es3函式模擬的bind的區別
在討論這個問題之前,我們先看一下在es5出現內建的bind函式之前,是怎麼模擬bind的 function.prototype.bind function othis var aargs array.prototype.slice.call arguments,1 ftobind this,fnop...
Bind 與 Eval 的用法與區別
eval和bind的區別 簡單來說 繫結表示式 eval 欄位名 bind 欄位名 1 eval 單向繫結 資料是唯讀的 bind 雙向繫結 資料可以更改,並返回伺服器端,伺服器可以處理更改後的資料,如存入資料庫.2.當對次表示式操作時候,必須用eval 如 eval 欄位名 tostring tr...
call,apply和bind的用法及區別
callfunction fn x,y console.log x y 11 var obj 語法 fn.call obj,2,9 應用 var obj array.prototype.push.call obj,30 console.log obj call obj,0,2 console.log...