jquery博客最近在看原生javascript,是那本犀牛書,厚厚一本。
慢慢有條不絮的進行的學習。
看到apply()和call()不得不停留下來,仔細琢磨琢磨。
留點字跡,方便之後溫習。
ECMAScript規範給全部函數定義了兩個方法call()和apply()。使用這兩個方法能夠像調用其餘對象的方法同樣調用函數。call()和apply()的第一個參數都是要調用的函數的對象。在函數體內這一參數是關鍵字this的值。call()的剩餘參數是傳遞給要調用的函數值。例如,要把兩個數字傳遞給函數f(),並將它做爲對象o的方法調用,試下下面的代碼:
f.call(o,1,2);
這個與下面的代碼類似的哦
o.m=f;
o.m(1,2);
delete o.m;
apply()方法和call()方法類似,只不過要傳遞給函數的參數是由數組指定的;
f.apply(0,[1,2]);
好比要找到一個數字數組中最大的數字,咱們能夠使用apply()方法把數組元素傳遞給Math.max()函數:
var bjggest=Math.max.apply(null,array_of_numbers);
轉自
jquery http://www.jqueryba.com/302.html