0
這裏是我的實驗腳本:JS調用():意外的函數 「這個」 背景下被稱爲
window.name = 'myWindow';
function sum(num1, num2){
console.log('context name: '+this.name+', caller: '+arguments.callee.caller.name);
}
function callSumNoName(num1, num2){
sum.call(this, num1, num2);
}
function callSum(num1, num2){
this.name = 'fnCallSumm';
sum.call(this, num1, num2);
}
console.log(callSumNoName()); // no property name in the function
console.log(callSum()); // the property name is 'fnCallSumm'
console.log(callSumNoName()); // no property name in the function
我預計this.name函數內總和()必須是:
myWindow
fnCallSumm
myWindow
...但在現實中,他們分別是:
myWindow
fnCallSumm
fnCallSumm
這是什麼意思?爲什麼在3個時間它表明從以前時間的函數調用的名財產,而不是現在必須提取的窗口對象的name屬性?