javascript - 从其他 JS 执行一个函数

标签 javascript html5-canvas

我有一个 java 脚本,我想要一个函数,它接受一个参数并执行不同的函数多次。

我现在有类似的东西:

<body onLoad="funct1(5)">

<script>
    funct1(a){
        var house = [];
        int x = 20;
        int y = 250;
        for(var i= 0; i<a; i++){
            house [i] = funct2(x,y);
            y=y+50;
        }

        for (var j = 0; j<a; j++){
            house[j]();
        }
    }
</script>

<script>
    funct2(x,y){
    //doing something with that 2 variables, drawing a house.
    } 
</script>    

我试图将这 2 个函数放在一个脚本中,但它也没有用。 有什么可能的方法可以从另一个函数执行一个函数并将其放入一个数组中进行存储并在之后绘制它?

最佳答案

如果您在一个或两个脚本标记中执行此操作,那没关系,因为无论如何浏览器都会同步执行它们。 您对 x 和 y 的变量声明是错误的。 您的函数声明也是错误的。 无论如何,它们只是您最终应该避免的语法错误。

您不能调用“house[j] ()”,因为您已经执行了此语句中的函数:“funct2(x,y)”。 如果你想用预先分配的参数存储函数调用,那么你应该使用:“house [i] = funct2.bind(this, x, y)” 即你将参数绑定(bind)到函数,只要它是调用并将此可调用绑定(bind)函数的副本存储在 house[i] 中。

我想这就是你想要的:

<body onLoad="funct1(5)">

<script>
    function funct1(a){
        var house = [];
        var x = 20;
        var y = 250;
        for(var i= 0; i<a; i++){
            house [i] = funct2.bind(this, x, y);
            y=y+50;
        }

        for (var j = 0; j<a; j++){
            house[j]();
        }
    }
</script>

<script>
    function funct2(x,y){
        console.log('drawing house with x '+x+' and y '+y);
    }
</script>

关于javascript - 从其他 JS 执行一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35748682/

相关文章:

javascript - JS-网格 : How to set default value

css - 如何将两个 Canvas 彼此相邻并放在第三个 Canvas 之上

javascript - HTML5 Canvas 绘画逼真简单铅笔

javascript - 将大量数据从 Web 服务器传输到客户端

php - 在php while循环中显示js

javascript - 我可以使用一个套接字来管理多个窗口吗?

php - JavaScript 不使用 window.location 进行重定向

javascript - HTML5 canvas 在基元(曲线,...)上禁用抗锯齿

jquery - Canvas 中的动态填充颜色

javascript - 如何从 javascript 数组本身向图表 js 添加数据?