js中apply方法使用詳解

2021-06-22 01:05:15 字數 1854 閱讀 3274

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

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

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

params:這個是乙個引數列表

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

arguments:是乙個陣列,也就是[「zhangsan」,」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 可以實現兩個陣列合併

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

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

1、物件的繼承,一般的做法是複製:object.extend

prototype.js的實現方式是:

object.extend = function(destination, source)  

return destination; }

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

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

他就具備了person類的sayhello方法和所有屬性。

我們先從math.max()函式說起,math.max後面可以接任意個引數,最後返回所有引數中的最大值。

比如 alert(math.max(5,8)) 

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

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

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

alert(math.max(arr)) 

// 這樣卻是不行的。一定要這樣寫

function getmax(arr)

return ret;}

再比如陣列的push方法。

var arr1=[1,3,4];

var arr2=[3,4,5];

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

arr1.push(arr2)顯然是不行的。 因為這樣做會得到[1,3,4,[3,4,5]]

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

var arrlen=arr2.length

for(var i=0;i

arr1.push(arr2[i]);

}

Js中apply方法詳解

本文摘自 主要我是要解決一下幾個問題 function.call obj,param1 param2 paramn obj 這個物件將代替function類裡this物件 params 這個是乙個引數列表 this 在建立物件在這個時候代表的是student arguments 是乙個陣列,也就是 ...

js中apply方法的使用

1 物件的繼承,一般的做法是複製 object.extend prototype.js的實現方式是 object.extend function destination,source return destination obj 這個物件將代替function類裡this物件 args 這個是陣列,...

js中apply方法的使用

1 物件的繼承,一般的做法是複製 object.extend prototype.js的實現方式是 object.extend function destination,source return destination obj 這個物件將代替function類裡this物件 args 這個是陣列,...