js中的apply和call函式

2021-08-01 13:09:23 字數 1080 閱讀 4779

主要我是要解決一下幾個問題:

obj:這個物件將代替function類裡this物件

args:這個是陣列,它將作為引數傳給function(args-->arguments)

function.call(obj,[param1[,param2[,…[,paramn]]]])

obj:這個物件將代替function類裡this物件

params:這個是乙個引數列表

1
this:在建立物件在這個時候代表的是student

arguments:是乙個陣列,也就是[「qian」,」21」,」一年級」];

也就是通俗一點講就是:用student去執行person這個類裡面的內容,在person這個類裡面存在this.name等之類的語句,這樣就將屬性建立到了student物件裡面

2.        call示例

person.call(this,name,age);

這樣就ok了

a)        math.max 可以實現得到陣列中最大的一項

因為math.max 引數裡面不支援math.max([param1,param2]) 也就是陣列

)這塊在呼叫的時候第乙個引數給了乙個null,這個是因為沒有物件去呼叫這個方法,我只需要用這個方法幫我運算,得到返回的結果就行,.所以直接傳遞了乙個null過去

b)        math.min  可以實現得到陣列中最小的一項

c)        array.prototype.push 可以實現兩個陣列合併

1 vararr1=new array("1","2","3");

23 vararr2=new array("4","5","6");4

5.        總結:

還有比如第四部分得內容,巧妙的解決了實實在在存在的問題,這個肯定不是乙個初學者能想到的解決方案(這個也不是我自己想的),沒有對程式設計有一定認識的不會想到這個的,還是一句話,多積累,多學習,提公升自己的能力和對程式設計思想的理解能力才是最關鍵!

其中有大部分內容參考自:

中間是我對其的一些詳細理解…

js中call和apply用法

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

JS中apply和call的區別

聯絡 obj 這個物件將代替 function類裡this物件,也即 function類 函式 裡的this不在是指 function 本身,而是obj args 這個是陣列型別的引數,它將作為引數傳給function args arguments 結果是還是執行 function 類方法 函式 的...

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進...