js中apply使用方法小議

2021-05-26 05:25:54 字數 1355 閱讀 2657

之一------(函式的劫持與物件的複製)

關於物件的繼承,一般的做法是用複製法: object.extend

見protpotype.js 的實現方法:

=function

(destination, source) 

return

destination;  

script

>

function

person(name,age)

function

print()

alert(msg.join(""

))  

function

student(name,age,grade,school)

/p>

varp1

=new

person(

"jake",

10)  

p1.sayhello()  

/p>

vars1

=new

student(

"tom",

13,6,

"清華小學

")  

s1.show()  

s1.sayhello()  

alert(s1.funcname)  

/p>

script

>

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

比如 

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))    //   這樣卻是不行的。一定要這樣寫

看效能測試:

getmax效能測試

通過20萬個資料的比較, getmax2 時間為 96ms 而 getmax時間為464。 兩者相差5倍

再比如陣列的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

js中apply使用方法小議

之一 函式的劫持與物件的複製 關於物件的繼承,一般的做法是用複製法 object.extend 見protpotype.js 的實現方法 我們先從 math.max 函式說起,math.max後面可以接任意個引數,最後返回所有引數中的最大值。比如 alert math.max 5,8 8 alert...

js中apply和call的使用方法

18.12.26 call 呼叫乙個函式在乙個指定的執行上下文中,和提供引數。function fn more function a age,name var aobj new a 11,tom fn.call aobj,more 以上 就是呼叫fn函式在aobj的執行上下文中執行的結果為 11to...

js中apply方法的使用

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