为多个属性调用一次函数
Call a function once for multiple attributes
如何为多个属性调用函数?
像这样:
fillTween (
option1.scale, 1;
option2.scale, 7;
option3.scale, 4;
option4.scale, 2;
)
function fillTween(attr, y) {
var tween = new TWEEN.Tween(attr).to({
y: y
}, 1000);
tween.easing(TWEEN.Easing.Elastic.InOut);
tween.start();
}
$("input[name='radiogroup1']").change(function() {
if ($('#radio1').is(":checked")) {
fillTween(option1.scale, 1);
fillTween(option2.scale, 7);
fillTween(option3.scale, 4);
fillTween(option4.scale, 2);
...
}
});
你不能。那里的解决方案只是重写函数以接受参数数组。
function fillTween(attributes) {
attributes.map(function(x) {
var attr = x[0];
var y = x[1];
var tween = new TWEEN.Tween(attr).to({
y: y
}, 1000);
tween.easing(TWEEN.Easing.Elastic.InOut);
tween.start();
})
}
并像这样称呼它:
fillTween ([
[option1.scale, 1],
[option2.scale, 7],
[option3.scale, 4],
[option4.scale, 2]
])
如果你不想
修改你的函数和/或可能想对不同的函数做类似的事情,你可以修改函数原型来创建一个新的"多"函数,如下所示:
Function.prototype.multiple = function() {
for (var i = 1; i < arguments.length; i++) {
this.apply(arguments[0],arguments[i]);
}
}
然后,您可以使用以下命令多次调用该函数:
fillTween.multiple(this,
[ option1.scale, 1 ],
[ option2.scale, 7 ],
[ option3.scale, 4 ],
[ option4.scale, 2 ]
);
相关文章:
- 使用每500ms运行一次的jquery函数是个好主意吗
- Javascript函数,需要每隔30秒递减一次
- 当元素可见时,jQuery滚动函数会触发一次
- 使函数只运行一次(Javascript)
- 如何在Javascript中设置函数在上一次结束时启动
- 运行“;非“;单击另一个函数中的函数仅一次
- 角函数每秒钟增加一次
- JavaScript只有在最后一次被调用时才运行函数
- 如何只使用一次window.onload函数
- 如何每 10 秒调用一次 JS 函数,然后以角度激活一个函数
- 节点 js 在启动时调用函数一次
- 有人可以帮助我调试带有addClass和removeClass函数的“每个会话一次”cookie吗?
- 如何在 window.setInterval 中每分钟运行一次 getJSON 函数
- 一次将多个对象传递给函数参数
- 就绪函数上的指令只能执行一次
- 一段时间后调用函数,但只调用一次
- 如何加载一个html页面并在其中只需单击一次即可运行函数
- Javascript只使用setInterval()调用一个子函数一次
- 元素在JavaScript函数中只更改过一次
- 函数只更改一次内容