代码改变世界

function的方法.apply和.call

2010-03-27 10:57  宝宝合凤凰  阅读(1470)  评论(1编辑  收藏  举报
所有的函数都是Function这个对象的实例,所以每一个函数都有apply、call的方法以及prototype的属性。

myFunc.call(theObj, arg1, arg2....)的作用是执行myFunc函数,其参数为arg1, arg2...,但和一般的执行有些区别,这里它重新指定了myFunc的主体对象,也就是说,原来假设myFunc是myObj的一个成员函数或者myFunc是一个全局函数,现在就让它作为theObj的一个成员函数来执行,myFunc内部的this,就指代theObj

myFunc.apply(theObj, arguments)的作用和myFunc.call类似,theObj也是作为新指定的主体对象,只不过它把参数列表都封装到arguments数组中了。它一般是用来在一个函数内执行另一个函数,而需要成批传输参数,或者参数的个数事先不知道的情况下的。

mF.call和mF.apply:
不同在:参数形式

vervethe:
相同的好处是:
 可临时扮演任何对象的成员
 利于将用户输入的内容解析给函数,来执行