首页 > 移动平台 > 详细

JS中两个重要的方法 call & apply 学习

时间:2015-03-27 14:39:55      阅读:196      评论:0      收藏:0      [点我收藏+]

正题:

Function.prototype.apply(instance,args)  //args 数组

Function.prototype.Call(instance,a1,a2)  //a1,a2 单个参数

 

function People() {
            this.name = ‘jinho‘;
            this.showName = function() {
          console.log(this);
          console.log(this.name); }; }

 

 function Student() {
            this.name = ‘student‘;
        }

    

var p= new People(); //创建对象
var s= new Student(); //创建对象

p.showName();

输出:

 

技术分享

p.showName.call(s);

输出:

技术分享

说明showName函数的当前this已经变为p了,神奇之处来了! s对象本来没有showName()方法啊! 可以他还是执行了! 是由于call函数把 s 作为了 this!

 

p.showName.apply(s);

技术分享

call函数和apply函数的区别是call 的语法是function.call(obj,param1,param2……);applay的语法是function.call(obj,[]/*params[]参数数组*/);

 

再附上我的同事evan给我讲解的一个例子:

技术分享

当调用test.call({},‘2‘)时,前面的{}充当了test函数里的this,后面的2才是函数test的参数赋值

 

JS中两个重要的方法 call & apply 学习

原文:http://www.cnblogs.com/laneyfu/p/4371579.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!