来自数组的 JavaScript 函数

标签 javascript arrays function

快速提问。

我有一个包含 3 个函数的数组。当我调用我想要执行的特定函数时,它不响应数组中的特定索引。它只是执行所有功能,直到它到达最后一个功能。

代码如下:

<p id="sometext">Change Color</p>
<script>
    function paintRed() {
        var text = document.getElementById('sometext');
        text.style.color = "red";
    }

    function paintBlue() {
        var text = document.getElementById('sometext');
        text.style.color = "blue";

    }
    function paintYellow() {
        var text = document.getElementById('sometext');
        text.style.color = "yellow";

    }

    var arrcolor = [ paintRed(), paintBlue(), paintYellow()];

    arrcolor[0]; //This returns the yellow color and not red//

</script>

所以我的

Change Color

总是返回黄色(数组中的最后一个函数),无论我调用哪个索引,即 (arrcolor[0],arrcolor[1])。< p>

希望这是有道理的。谢谢。

最佳答案

只能把函数名(其实就是reference)放在数组里,这样执行

var arrcolor = [ paintRed, paintBlue, paintYellow];

arrcolor[2](); 

JSFIDDLE

另一种方法是创建一个对象并将每个函数放入其中

var changeColor = {
  paintRed :function(text){
     text.style.color = "red";
   },

   paintBlue :function(text){
     text.style.color = "blue";
   },
   paintYellow:function(text){
       text.style.color = "yellow";
    }

}
var text = document.getElementById('sometext');
changeColor.paintRed(text)

JSFIDDLE

关于来自数组的 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37897084/

相关文章:

javascript - 动画期间的 jQuery 碰撞检测

javascript - javascript 中变量的范围 - 如果在 for 循环之前声明变量,那么在 for 循环之后不应该访问它的值吗?

javascript - 如何在 RadioButton-Selection 上调用 Javascript 函数?

javascript - 变量未定义 Javascript + Parse.com

R 元素到元素的操作在组中的几列

java - OpenLayers:来自对象列表的动态特征信息

c++ - 我误解了这个伪代码吗?

javascript - 计算对象属性的重复数组以生成新数组

python - 如何在数组中找到两个相似数字的索引?

c - 在 C 中列出具有特定目录扩展名的所有文件