gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:04:08 25 4
gpt4 key购买 nike

我有一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com