JavaScript深入浅出程序员Web前端之路

apply和call

2017-03-15  本文已影响65人  古朋

介绍

有编程开发经验的都知道函数有作用域这种东西,JavaScript中的函数中的亦是如此。但是想要更改该函数的作用域,最方便的方式就是通过apply和call方法

用法

apply和call在功能上是相同的,但是唯一的不同之处在于提供参数的方式。

  1. apply使用参数数组而不是一组参数列表

    window.color = "red";
    var a = {
      color : "blue"
    };
    var x = function(){
      alert(this.color+"--"+arguments.length);
    }
    x();//red is 0
    x.apply(window);//red is 0
    x.apply(a,[1,2,3]);//blue is 3
    

  2. call使用时参数列表

    window.color = "red";
    var a = {
      color : "blue"
    };
    var x = function(){
      alert(this.color+" is "+arguments.length);
    }
    x();//red is 0
    x.call(window);//red is 0
    x.call(a,1,2,3);//blue is 3
    

1.apply语法

fun.apply(thisArg[, argsArray])

参数

2.call语法

fun.call(thisArg[, arg1[, arg2[, ...]]])

参数

上一篇下一篇

猜你喜欢

热点阅读