码迷,mamicode.com
首页 > 移动开发 > 详细

函数的call()方法和apply()方法

时间:2017-11-05 23:41:29      阅读:419      评论:0      收藏:0      [点我收藏+]

标签:his   var   code   其他   上下文   ons   包含   console   列表   

  阅读各种框架的源码apply和call方法肯定经常看到,好好理解一下概念至关重要。

  JavaScript中的函数也是对象,和其他JavaScript对象没什么两样,函数对象也可以包含方法。其中的call()方法和apply()方法可以间接调用函数。两个方法都允许显式指定调用所需的this值,也就是说,任何函数都可以作为任何对象的方法来调用,哪怕这个函数不是那个对象的方法。

  两个方法都可以指定调用的实参。call()方法使用它自有的实参列表作为函数的实参,apply()方法则要求以数组的形式传入参数。

  call()方法和apply()方法的第一个实参是要调用函数的母对象,它是强调上下文,在函数体内通过this来获得对它的引用。

function a1(i,j){
    var a = 1;
    console.log(a);
    console.log(i,j);
}
function b1(i,j){
    var b = 2;
    console.log(i,j);
    this(i,j);
}
b1.call(a1,111,222);   // call()方法调用
// b1.apply(a1,[111,222]); apply()方法调用,一样的,只是传参形式不一样

 

函数的call()方法和apply()方法

标签:his   var   code   其他   上下文   ons   包含   console   列表   

原文地址:http://www.cnblogs.com/caichunbao/p/7789101.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!