js的call方法與apply方法的差別

2021-08-28 01:43:35 字數 1032 閱讀 7416

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

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

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

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

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

params:這個是乙個引數列表this:在建立物件在這個時候代表的是student

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

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

2.call示例

person.call(this,name,age);

這樣就ok了

在呼叫person的時候,他需要的不是乙個陣列,但是為什麼他給我乙個陣列我仍然可以將陣列解析為乙個乙個的引數,

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

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

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

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

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

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

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

5.總結:

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

js 當中的apply與call

例如當我們執行 乙個方法 知乎上面鏈結位址 var numbers 5,6,2,3,7 var s wujianglong var s1 wu jiang long s.split w u j i a n g l o n g s1.split vm418 1 uncaught typeerror s...

call與apply方法的異同

改變物件的執行上下文 什麼是執行上下文?我們在寫乙個方法的時候,總是會用到乙個關鍵字this,而this的指向就是我們這裡所說的執行上下文 執行環境 首先我們要知道,this指向的永遠是呼叫該方法的物件,如何證明this的指向就是當前物件呢?看下面這段 function func func 1 中方...

call與apply方法的應用

window,color red var o function saycolor saycolor red saycolor.call this red saycolor.call window red saycolor.call o blue function sum num1,num2 aler...