1、相同點,這三個是乙個函式。函式。函式。都可以改變函式的this
指向 第乙個引數都是this要指向的物件。例如
var obj =function
funcall(a,b,c)
funcall.call(obj,'a','b','c')
call函式
特點:
1、可以改變當前函式的this指向(就是改變函式的呼叫者)。2、還會讓當前函式執行
// 1、將方法掛載到我們傳入的要繫結this的物件上,2,將掛載後的方法呼叫,3,將新增的方法屬性刪除
function.prototype.mycall = function(thisarg, ...args)
if(array.isarray(args))
const fn = symbol('fn');
const obj = obj ||window;
obj[fn] = this
; const result =obj[fn](...args);
delete
obj[fn];
return
result;
}3、手寫bind
function.prototype.mybind = function(obj, ...args1)
}
手寫call,apply,bind函式
涉及面試題 考慮兩點 function.prototype.mycall function context context context window 和上面的 一樣 context.fn this const args arguments slice 1 const result context...
實現call, apply, bind函式
思路 把目標儲存在this中並返回 const obj let name 李四 function add 執行函式 add 李四 add.call obj 張三1.實現call函式定義名稱為mycall function.prototype.mycall function content conte...
手寫call apply bind函式
function.prototype.mcall function context,args context context window global const funcname symbol context funcname this 傳入的引數不是陣列 if array.isarray ar...