apply和call的用法

2021-06-25 21:59:11 字數 1280 閱讀 8361

應用某一物件的乙個方法,用另乙個物件替換當前物件。

引數

thisobj 可選項。將被用作當前物件的物件。

argarray 可選項。將被傳遞給該函式的引數陣列。

說明

如果 argarray 不是乙個有效的陣列或者不是arguments物件,那麼將導致乙個 typeerror。如果沒有提供 argarray 和 thisobj 任何乙個引數,那麼global物件將被用作 thisobj,並且無法被傳遞任何引數。

呼叫乙個物件的乙個方法,以另乙個物件替換當前物件。

call([thisobj[,arg1[, arg2[,  [,.argn]]]]])

引數thisobj 可選項。將被用作當前物件的物件。

arg1, arg2,  , argn 可選項。將被傳遞方法引數序列。

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

其中,arguments是由param1,param2…paramn引數組成的數字

1.例項:

/*定義人類*/  

function person(name,age,***)

} /*定義乙個學生類*/

function student()

var person=new person();

var student=new student();

person.showperson.call(student); //列印結果:姓名:張三-年齡:10-性別:男

2.實現繼承

function person(name,age,***)  

}

function student(name,age,***)

var student=new student('張三',10,'男');

student.showperson(); //列印結果:姓名:張三-年齡:10-性別:男

apply和call的用法

查了大量的資料,經過n次測試,總結如下 希望給像我一樣的菜鳥有幫助 call 方法名a.call 物件名b,執行a需要的引數,用逗號分隔 看例子 function obj1 function obj2 var k1 new obj1 var k2 new obj2 上面定義了兩個物件它們都有arg這...

js中call和apply用法

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

JS中Apply和Call的用法

1 函式層面 obj.call obj1,argument1,argument2,這兩個函式都是使用obj物件來替換obj1來執行對應的函式 這個可用於物件的繼承 例如 function add a,b function sub a,b add.call sub,a,b 使用add函式來替代sub進...