二 call和apply的用法(詳細介紹)

2021-07-12 06:41:27 字數 1097 閱讀 8052

call 方法

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

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

thisobj

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

arg1, arg2, , argn

可選項。將被傳遞方法引數序列。

說明 call 方法可以用來代替另乙個物件呼叫乙個方法。call 方法可將乙個函式的物件上下文從初始的上下文改變為由 thisobj 指定的新物件。

如果沒有提供 thisobj 引數,那麼 global 物件被用作 thisobj。

alert(math.max(5,8)); //8

alert(math.max(5,7,9,3,1,6)); //9

//但是在很多情況下,我們需要找出陣列中最大的元素。

var arr=[5,7,9,1];

//alert(math.max(arr)); // 這樣卻是不行的。nan

//要這樣寫

function getmax(arr)

return ret;

} alert(getmax(arr)); //9

function getmax2(arr)

alert(getmax2(arr)); //9

//兩段**達到了同樣的目的,但是getmax2卻優雅,高效,簡潔得多。

//再比如陣列的push方法。

var arr1=[1,3,4];

var arr2=[3,4,5];

//如果我們要把 arr2展開,然後乙個乙個追加到arr1中去,最後讓arr1=[1,3,4,3,4,5]

顯然是不行的。 因為這樣做會得到[1,3,4,[3,4,5]]

//我們只能用乙個迴圈去乙個乙個的push(當然也可以用arr1.concat(arr2),但是concat方法並不改變arr1本身)

var arrlen=arr2.length;

for(var i=0;i

apply和call的用法

應用某一物件的乙個方法,用另乙個物件替換當前物件。引數 thisobj 可選項。將被用作當前物件的物件。argarray 可選項。將被傳遞給該函式的引數陣列。說明 如果 argarray 不是乙個有效的陣列或者不是arguments物件,那麼將導致乙個 typeerror。如果沒有提供 argarr...

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 指定的新物件。如果沒...