Emr*_*mre 26 javascript arrays function
如何在具有命名属性的数组中存储函数,因此我可以调用
FunctionArray["DoThis"]
Run Code Online (Sandbox Code Playgroud)
甚至
FunctionArray[integer]
Run Code Online (Sandbox Code Playgroud)
注意:我不想使用eval.
Anu*_*rag 32
要记住的重要一点是函数是JavaScript中的第一类对象.因此,您可以将它们作为参数传递,将它们用作对象值等等.数组中的值只是其中的一个示例.
请注意,我们不是将函数存储在数组中,尽管我们可以这样做并使用数字索引访问它们.我们将它们存储在一个常规对象中,该对象由我们想要访问该函数的名称键入.
var functions = {
blah: function() { alert("blah"); },
foo: function() { console.log("foo"); }
};
Run Code Online (Sandbox Code Playgroud)
打电话给
functions.blah();
Run Code Online (Sandbox Code Playgroud)
要么
functions["blah"]();
Run Code Online (Sandbox Code Playgroud)
med*_*iev 13
你想要一个对象文字,而不是一个数组.
x = { 'dothis': function() { alert('hi'); } };
Run Code Online (Sandbox Code Playgroud)
宾语
x['dothis']()
Run Code Online (Sandbox Code Playgroud)
您也可以动态调用
y = 'dothis';
x[y]()
Run Code Online (Sandbox Code Playgroud)
静态/硬编码调用:
x.dothis()
Run Code Online (Sandbox Code Playgroud)
如果你确实想要一个数组:
x = [function(){alert('hi');}][0]()
Run Code Online (Sandbox Code Playgroud)
小智 6
你实际上可以做到这一点。只需在数组外声明它,就像这样......
const your_function = function(){ console.log("I am your function") }
const group = [0, "lizard", false, your_function()]
group[3]
Run Code Online (Sandbox Code Playgroud)
您也可以更改它的调用位置,如果您想...
const your_function = function(){ console.log("I am your function") }
const group = [0, "lizard", false, your_function]
group[3]()
Run Code Online (Sandbox Code Playgroud)
函数命名错误:/ sry