call 與apply 的區別小領悟

2021-09-25 14:21:11 字數 533 閱讀 4657

相同點:

,一般來說,函式裡面的this指向的是window

eg:指令碼中:

let abj={

a:"1",

b:'2'

function find(){

console.log(this);

console.log(this.a);

find();=>輸出的this=>window

輸出的this.a=>空

find.call(obj);

兩個均輸出的this=>obj

this.a=>'1'

不同點

如果函式帶引數,甚至不止乙個

function add(c,d){

return this.a+this.b+c+d;

let objs={

a:1,

b:2add.call(obj,3,4);=>逗號隔開引數

輸出10

輸出10

apply 與call 的區別

function call 方法 function.call thisobj arg1 arg2 argn 它們各自的定義 call 呼叫乙個物件的乙個方法,以另乙個物件替換當前物件。例如 b.call a,args1,args2 即a物件呼叫b物件的方法。它們的共同之處 都 可以用來代替另乙個物件...

apply 與call 的區別

function call 方法 function.call thisobj arg1 arg2 argn 它們各自的定義 call 呼叫乙個物件的乙個方法,用另乙個物件替換當前物件。例如 b.call a,args1,args2 即a物件呼叫b物件的方法。它們的共同之處 都 可以用來代替另乙個物件...

apply 與call 的區別

call 方法 function.call thisobj arg1 arg2 argn 它們各自的定義 call 呼叫乙個物件的乙個方法,用另乙個物件替換當前物件。例如 b.call a,args1,args2 即a物件呼叫b物件的方法。它們的共同之處 都 可以用來代替另乙個物件呼叫乙個方法,將乙...