论坛首页 Web前端技术论坛

淡淡简单描述javascript中方法apply和call

浏览 1626 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-09-27  
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
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics