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

时间:2015-10-09 11:31:08

标签: javascript

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

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

我想知道这意味着什么?

4 个答案:

答案 0 :(得分:2)

这意味着此数组项是一个函数,并且使用参数this._senderargs调用它。

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

var arr = [];

arr.push(function(str) {
  document.body.innerHTML = "Hey, " + str;
});

arr[0]("Your name");

答案 1 :(得分:0)

这意味着myArray [index]是myArray的元素,它是函数,这就是它需要2个参数的原因。

答案 2 :(得分:0)

在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,console

答案 3 :(得分:0)

类似于以下代码段:

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]