从其他 JS 执行一个函数
Executing one function from other JS
我有一个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)",即每当函数被调用时,你都会将参数绑定到函数,并将这个可调用的绑定函数的副本存储在 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>
这应该适用于相同的脚本标记。不过,您需要将int x
和int y
更改为var x
和var y
:
<script>
var funct1= function(a){
var house = [];
var x = 20;
var 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]();
}
}
var funct2 = function(x,y){
//doing something with that 2 variables, drawing a house.
return function() {
//do stuff with x and y
}
}
</script>
funct2
现在也返回一个函数,允许您对结果调用house[j]()
。
您正在寻找的东西实际上非常复杂。您希望func2
返回基于 x 和 y 的函数。这可以通过像这样动态定义它们,然后返回它们并将它们保存在 house
数组中来实现。
但是你为什么要这样做呢?不要将它们保存在 house
数组中,而只是让 func2 直接绘制它们。
相关文章:
- 我可以在json对象中添加一个函数吗
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 在另一个函数中使用变量this
- 在另一个函数成功结束后调用该函数
- mongoose.connect undefined不是一个函数
- 监听器必须是一个函数
- 使用JS函数来使用另一个函数的语法?node.js
- 如何取消object.prototypes javascript的一个函数
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- 嵌套到另一个函数中的Fancybox函数;不起作用
- 如何在javascript中使用不止一个函数
- jQuery-在页面加载时执行一个函数
- jquery UI draggable:UI.children不是一个函数
- jQuery Mobile Undefined不是一个函数
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- javascript函数将数据添加到屏幕,但随后被另一个函数覆盖
- JS异常:animate不是一个函数
- 如何将一个函数附加到一个不存在的元素上
- JavaScript/jQuery-添加添加和删除类与下一个函数之间的延迟