区分call和apply

来源:互联网 发布:单片机中断优先级 编辑:程序博客网 时间:2024/05/22 22:34

区分call和apply就一句话

foo.call(this,arg1,arg2,arg3)===foo.apply(this,arguments)===this.foo(arg1,arg2,arg3)

 $(function() { function student(name,age){this.name=name;this.age=age;student.writeBook=function(){alert(this.name+"writeHomeWork");} } function teacher(name,age){this.name=name;this.age=age;teacher.kickass=function(a,b){alert(this.name+" kickass "+a+b+"次");} } var s=new student("小明","13"); var t=new teacher("老师","40"); //小明逆袭 teacher.kickass.call(s,"老师","3"); teacher.kickass.apply(s,["老师","3"]);  });

apply的区别只是后面的参数可以是数组,call则是依次传入的参数,如果参数数量不明确的情况下是用apply

原创粉丝点击