先看兩道道面試題
面試題1:
var number = 50;var obj =
}console.log(obj.getnum());
console.log(obj.getnum.call());
console.log(obj.getnum.call());
面試題2:
"use strict";var number = 50;
var obj =
}console.log(obj.getnum());
console.log(obj.getnum.call());
console.log(obj.getnum.call());
上面的兩道題答案自己先想下為什麼?
舉個例子
functionfn()
fn.call();
//普通模式下this是window,在嚴格模式下this是undefined
fn.call(null); //
普通模式下this是window,在嚴格模式下this是null
fn.call(undefined); //
普通模式下this是window,在嚴格模式下this是undefined
現在是否就明白點了?
下面來公布答案:
面試題1: 60 50 20
面試題2: 60 undefined 20;
看過例子後應該會明白了一些吧!
call初步理解
function.prototype.call function context function.prototype.call.call context 相當於 this bind context this指function.prototype.call,於是相當於 function.protot...
新手理解 apply 和 call
假設我們有乙隻喵星人 const cat can run 還可以跳 包括跳牆是可以的 jump can jump 複製 同時,它還有乙個小夥伴汪星人 const dog can run 還會吠 bark bark loudly 馬戲團的?還會做算數 count a,b 複製 不難發現,貓狗各有所長....
我所理解的call和apply
一 先來看看示例 這兩個方法的用途都在特定的作用域中呼叫函式,實際上等於設定函式體內this物件的值。例一 123 4567 891011 1213 1415 function box num1,num2 function sum num1,num2 alert sum 10,10 function...