主要我是要解決一下幾個問題:
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 這個是陣列,...