javascript中call方法说明

    初次接触call方法是在javascript高级编程中的引用类型Function类型一章中看到的,当时就是很不明白,这个函数到底是干什么用的,今天翻阅javascript高级编程第二遍的时候,还是很不理解,所以询问度娘,查阅书籍后,感觉自己明白了一些。

    首先,先举个简单栗子 obj1.method.call(obj2,argument0,argument1),意思如下:就是把obj1下的method方法通过call方法放到obj2上,后面的argument0,argument1为参数,参数必须逐个列举。好了,下面看详细栗子。

    function method0(name, age) {                
      this.name = name;  
      this.age = age;  
      return this;
    } 
    function method1(name, age,job) {  
      method0.call(this, name, age);
      this.job = job;
    }  

    var a =new method1('grek','22','web');
    alert(a.name+' '+a.age+' '+a.job);

结果如下:

   

    这是为什么呢?method1中并没有定义this.name,this.age两个变量,可是为什么能够弹出这两个变量呢?

    其实在这个栗子中 method0.call(this, name, age)这句话中的this指的的就是method1,通过call方法把method0函数放到了method1,也可以这么说,call方法把函数method0的作用域改到了函数method1中。但更具体的来说,这是继承,通过call函数让method1继承method0。

    所有call方法可以1、修改函数作用域,2、实现继承。这就是今天对call方法的认识,如果不对,请大家指出,为了更好的进步,thanks.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值