我对JavaScript很陌生,但这个话题似乎引起了很少的论坛关注。给出了许多简单的函数:
function do_something(){...};
function do_somemore(){...};
function do_something_else(){...};
我希望能够将这些明确地分配给(这里是2D)数组中的单元格。
myMatrix[5][3] = do_something();
myMatrix[5][4] = do_somemore();
myMatrix[5][5] = do_something_else();
我想使用这种方法的原因是:
任何给定的函数都可以分配给多个数组单元格,例如:
myMatrix[2][6] = do_somemore();
myMatrix[5][4] = do_somemore();
myMatrix[6][3] = do_somemore();
不幸的是,如下所示的调用(基于各种论坛示例,再加上一些“吮吸它并看到”)都失败了。
x = myMatrix[5][4]do_somemore(); -> "missing ; before statement"
x = (myMatrix[5][4])do_somemore(); -> "missing ; before statement"
x = (myMatrix[5][4]do_somemore)(); -> "missing ) in parenthetical"
x = (myMatrix[5][4])(do_somemore()); -> "is not a function"
x = (myMatrix[5][4])()do_somemore(); -> "missing ; before statement"
x = myMatrix[5][4]()do_somemore(); -> "missing ; before statement"
x = myMatrix[5][4](); -> "is not a function"
x = (myMatrix[5][4])(); -> "is not a function"
由于我不了解JavaScript内部,我很高兴建议如何让函数调用触发。
答案 0 :(得分:2)
您应该像这样分配它们:
myMatrix[5][3] = do_something;
答案 1 :(得分:0)
myMatrix[5][3] = do_something;
您的方法会将值设置为函数的结果!
答案 2 :(得分:0)
我并不完全清楚你所追求的是什么,但是:
首先,在为数组赋值之前,必须存在该数组:
var myMatrix = [];
myMatrix[5] = [];
myMatrix[5][3] = … // Then you can assign something
然后,如果要分配函数的返回值:
myMatrix[5][3] = do_something();
或者,如果您想指定功能本身:
myMatrix[5][3] = do_something;
...然后调用它并将其返回值分配给x
:
var x = myMatrix[5][3]();
...与var x = do_something()
相同,但函数this
内部将myMatrix[5]
而不是window
。
答案 3 :(得分:0)
myMatrix[5][3] = do_something;
myMatrix[5][4] = do_somemore;
myMatrix[5][5] = do_something_else;
var x = myMatrix[5][3]();
var y = myMatrix[5][4]();
var z = myMatrix[5][5]();