Underscore.js _.invokes Function函数

  • Post category:jquery

Underscore.js 是一个流行的 JavaScript 函数库,提供了各种函数来简化常见的 JavaScript 编程任务。其中一个函数是 _.invoke,它可以方便地对数组中的每个元素调用指定的函数。

函数语法和参数

_.invoke 函数的语法如下:

_.invoke(list, methodName, [arg1, arg2, ...])

其中,list 表示要调用函数的数组,methodName 表示要调用的方法名,arg1, arg2,… 是可选的附加参数。当 methodName 是一个方法名时,这个方法将在 list 中的每个元素上被调用。如果指定了附加参数,则它们将作为传递给 methodName 方法的参数。

示例1:将数组中的每个字符串都转换为大写字母

下面是使用 _.invoke 函数将字符串数组中的每个字符串都转换为大写字母的示例代码:

var stringArray = ["hello", "world", "underscore.js"];
var result = _.invoke(stringArray, "toUpperCase");
console.log(result);

这个代码将输出一个新的数组,其中包含了原始数组中的每个字符串都已经转换为大写字母的结果。

示例2:调用对象的方法

下面是一个使用 _.invoke 调用对象方法的示例:

var person1 = {
  name: "Alice",
  sayHello: function() {
    console.log("Hello, my name is " + this.name + ".");
  }
};

var person2 = {
  name: "Bob",
  sayHello: function() {
    console.log("Hello, my name is " + this.name + ".");
  }
};

var people = [person1, person2];

_.invoke(people, "sayHello");

这个代码会在控制台上输出以下内容:

Hello, my name is Alice.
Hello, my name is Bob.

_.invoke 函数将 sayHello 方法应用于数组中的每个 person 对象上,并将每个对象作为 this 值传递给它的方法调用。因此,每个对象上的 sayHello 方法都打印了相应的问候语句。

注意,在这个例子中,我们没有传递任何附加参数给 sayHello 方法。如果需要传递附加参数,则只需在第三个参数开始的位置上添加它们即可。

结论

_.invoke 是一个实用的 Underscore.js 函数,可用于方便地对数组中的每个元素调用指定的方法。使用 _.invoke 函数,可以减少你需要编写的重复代码,使代码更加简洁易读。