call和apply
先看段代码:
function Introduce(name,age) { document.write("My name is "+name+".I am "+age); } var p=new People(); Introduce.call(p,"Windking",20);
用了call之后,Introduce就成了p的方法,不知道这样说你明白了么?使用了call方法,上述的代码就等同于了这个代码:
function People(name,age) { this.name=name; this.age=age; this.Introduce=function(){ document.write("My name is "+name+".I am "+age); }; }
语法:
call: call接受至少一个参数,call的第一个参数是指你所需要的对象,比如上例,introduce方法希望被对象p调用,那么就将p作为call方法的第一个参数;剩余的参数个数是任意的,作用是作为introduce方法的参数。顺序是按照introduce参数声明的顺序。注:传入的参数的顺序要与函数声明的时的参数顺序一致。
apply: 作用和call方法一致,区别是:call接受至少一个参数,apply只接受两个参数,第一个参数与call一样,第二个参数是一个带下标的集合,比如introduce.call(p,"Windking",20)可以改写成introduce.apply(p,["Windking",20])
参考:http://www.cnblogs.com/kym/archive/2009/01/23/1380215.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步