第1筆雖傳入數字與字串但this是物件所以會轉換成物件
fn.call(1, '小明', '小華');
fn.call('文字', '小明', '小華');
fn.call(undefined, '小明', '小華');
第三行遵循嚴格模式
例1 (嚴格模式下不能直接對變數宣告)
(function() {
'use strict'; //執行嚴格模式
a = '小明';
}) ():
例2
function callStrict(part1, part2) {
'use strict';
console.log(this, typeof this, part1, part2);
}
callStrict.call(1, '小明', '小華'); //維持數字1不會變成建構式
callStrict.call(undefined, '小明', '小華'); //維持undefined不會變成建構式
callStrict('小明', '小華');//簡易呼叫會輸出上次抓到的值
補充
DOM:
<button onclick="console.log(this)">這是一個按鈕</button>
//log改成dir可以輸出button