JavaScript: array[]后面有括号()是什么意思?

JavaScript : what does it mean to have brackets () after array[]?

本文关键字:是什么 意思 array JavaScript      更新时间:2023-09-26

我是JS新手,我读过一段包含这一行的代码。

this.myArray[index](this._sender, args);

我想知道这是什么意思?

表示该数组项是一个函数,并以参数this._senderargs调用。

在这个例子中,我声明了一个数组,向它推送一个单参数函数,然后调用它。

var arr = [];
arr.push(function(str) {
  document.body.innerHTML = "Hey, " + str;
});
arr[0]("Your name");

这意味着myArray[index]是myArray函数的元素,这就是为什么它需要2个参数

类似于下面的代码片段:

var myClass = function () {
    this._a = 5;
    var index = arguments[0] || 0;
    this.myArray = [
        function (a, b) {
            console.log(a, b);
        },
        function (a, b) {
            console.log(a, b);
        }
    ];
    this.myArray[index](this._a, arguments);
};
var obj = new myClass(1, 2, 3);//5  [1, 2, 3]

在JavaScript中,函数是第一类对象,所以它们可以像其他值一样被传递/引用、存储和访问。

var myArray = [];
var myFunction = function(name) {
  console.log("Hello, " + name + "!");
};
myFunction('World');
myArray[0] = myFunction;
myArray[0]('again');
function addDefault(func, defaultValue) {
  return function(name) {
    name = name ? name : defaultValue;
    func(name);
  }
}
var myFunctionWithDefault = addDefault(myFunction, 'stranger');
myFunctionWithDefault();
myFunctionWithDefault('goodbye');

JSBin: http://jsbin.com/wubuye/edit?js,控制台