【问题标题】:What is the difference between call and apply method in jQuery [duplicate]jQuery中的调用和应用方法有什么区别[重复]
【发布时间】:2014-01-02 03:57:31
【问题描述】:

我见过很多 java 脚本代码,它们使用 call 和 apply 方法来调用函数。 我对确切的区别以及在什么条件下使用哪一个有点困惑。

【问题讨论】:

标签: jquery


【解决方案1】:

它们不是 jQuery 的东西,它们是 JavaScript 的东西。

它们做同样的事情:它们在函数调用中使用this 的特定值调用给定函数。唯一的区别是您如何指定要传递给函数的参数。使用call,您可以将它们指定为一系列离散参数(在第一个参数之后,用作this)。使用apply,您可以将它们指定为一个数组(同样在第一个参数之后,即用作this)。

所以说我们有:

function foo(a, b, c) {
   console.log("this = " + this);
   console.log("a = " + a);
   console.log("b = " + b);
   console.log("a = " + c);
}

这两个调用完全一样:

foo.call("bar", 1, 2, 3);
// Note --------^--^--^--- a series of discrete args

foo.apply("bar", [1, 2, 3]);
// Note ---------^-------^-- args as an array

在这两种情况下,我们看到:

这=酒吧 a = 1 b = 2 c = 3

【讨论】:

    猜你喜欢
    • 2011-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 2020-12-05
    • 2018-12-26
    • 1970-01-01
    相关资源
    最近更新 更多