標籤:style blog io ar color 使用 sp on div
函數同樣有兩個非常好用的屬性:length 和prototypefunction fn1(){}function fn2(num1,num2){}function fn3(num1){}//函數的length就表示該函數所期望的參數值alert(fn1.length) // 0alert(fn2.length) // 2alert(fn3.length) // 1call 和apply方法查可以通過函數名稱來調用函數對於apply而言有兩個參數,第一個是調用的上下文,第二個是參數數組,可以直接把arguments傳遞進去對於call而言第一個參數是內容物件,後面的參數是不同函數參數function sum(num1,num2){ return num1 + num2;}function callSum1(num1,num2){ //使用sum 這個函數來完成一次調用,調用的參數就是callSum1這個函數的參數 //apply的第二個參數表示一組參數的數組 return sum,apply(this,arguments)}function callSum2(num1,num2){ // 關鍵就是第二個參數是數組 return sum.apply(this,[num1,num2]);}alert(callSum1(12,22));alert(callSum2(22,32));function callSum3(num1,num2){ //call是通過參數列表來完成傳遞,其它和apply沒有任何區別 return sum.call(this,num1,num2);}alert(callSum3(12,22));/* 當需要建立一個類的時候,設定類的屬性和方法需要通過this關鍵字來引用 但是特別注意:this關鍵字在調用時會根據不同的調用對象變得不同*/var color = ‘red‘;function showcolor(){ alert(this.color);}//建立了一個類,有一個color的屬性和一個show的方法function circle(color){ this.color = color;}var c= new Circle(‘yellow‘);showColor.call(this) //使用上下文來調用showColor,結果是redshowColor.call(c); //內容物件是以,結果就是yellow/* 通過以上發現,使用call和apply之後,對象中可以不需要定義方法了 這就是call和apply的一種運用*/
函數深入理解---函數的屬性length和方法call 和apply