之一------(函式的劫持與物件的複製)
關於物件的繼承,一般的做法是用複製法: 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 這個是陣列,...