call和apply的區別

2021-08-10 08:05:25 字數 758 閱讀 7195

**:

**如下

複製**

function add(a,b)

function reduce(a,b)

add.call(reduce,1,3) //將add方法運用到reduce,結果為4

如下例:

**如下

複製**

function b()

b(); //window

b.call(); //window

b.call(「a」,2,3); //a

再看乙個複雜的例子:

**如下

複製**

function animal()

}function cat()

var animal = new animal();

var cat = new cat();

animal.showname(); //結果為animal

animal.showname.call(cat); //原本cat沒有showname方法,但是通過call方法將animal的showname方法應用到cat上,因此結果為cat

如下例子:

**如下

複製**

function animal(name)

}function cat(name)

var cat = new cat(「black cat」);

cat.showname(); //瀏覽器彈出black cat

a.call(b,arg1,arg2…)

call 和apply 的區別

call方法 語法 call thisobj,object 定義 呼叫乙個物件的乙個方法,以另乙個物件替換當前物件 說明 call方法可以用來代替另乙個物件呼叫乙個方法。call方法可將乙個函式的物件上下文從初始的上下文改變為由thisobjext指定的新物件。如果沒有提供thisobj引數,那麼g...

call和apply的區別

1 方法定義 call方法 語法 call thisobj arg1 arg2 argn 定義 呼叫乙個物件的乙個方法,以另乙個物件替換當前物件。說明 call 方法可以用來代替另乙個物件呼叫乙個方法。call 方法可將乙個函式的物件上下文從初始的上下文改變為由 thisobj 指定的新物件。如果沒...

call 和 apply 的區別

相同點 都是為了改變this的指向 不同點 傳參的類別不同 call 第二個引數開始接受乙個引數列表 tostring.call 1,2,3 let array 1,2,3 obj function fun a,b,c a 1,b 2,c 3 a 1,2,3 b c undefined fun.ca...