(圖片來源:六角學院)
例
function callName(){
console.log(this, this.myName);
}
var family = {
myName: '小明家',
callName: callName,
Ming: {
myName: '小明',
callName: callName
}
}
family.callName();
family.Ming.callName()
回傳:
call、apply、bind 三者都是 JavaScript Function 的內建函式,他們與 this 的關係重大,除此之外,call & apply 可以作為呼叫 Function 的另一個手段,而 bind 則會回傳一個經過包裹後的 Function 回來
全域
例 (call,apply)
function fn(this,part1,part2) {
console.log(this,part1,part2);
}
fn.call(family,1,2);
fn.apply(family,[3,4]);
因為this會呼叫全域(window)所以會輸出myName:"小明家"
例 (bind)
函式表達式需先呼叫(fn2();)才能執行
var fn2 = fn.bind(family, '小明', '小華');
fn2(); //且不能加入參數