gpt4 book ai didi

javascript - 如何将多个 JS 函数合并为一个函数?

转载 作者:行者123 更新时间:2023-11-28 04:29:19 25 4
gpt4 key购买 nike

我已经用谷歌搜索找到组合我的代码的方法,我尝试了很多解决方案,但它们都没有帮助我。

我在 html 中有 3 个 div,每个 div 有 3 个略有不同的 JS 函数。函数正在填充 js 代码。

我想组合我的代码,而不是有 3 个函数,如果只有一个函数可以做我想做的事情的话。

执行此操作的最佳方法是什么?

// Random Stars
(function($) {
var generateStars = function(){

var $galaxy = $(".galaxy1");
var iterator = 0;

while (iterator <= 100){
var xposition = Math.random();
var yposition = Math.random();
var star_type = Math.floor((Math.random() * 100) + 1);
var position = {
"x" : $galaxy.width() * xposition,
"y" : $galaxy.height() * yposition,
};

$('<div class="star star-type-' + star_type + '"></div>').appendTo($galaxy).css({
"top" : position.y,
"left" : position.x
});

iterator++;
}

};

generateStars();

var generateStars2 = function(){

var $galaxy = $(".galaxy2");
var iterator = 0;

while (iterator <= 25){
var xposition = Math.random();
var yposition = Math.random();
var star_type = Math.floor((Math.random() * 25) + 1);
var position = {
"x" : $galaxy.width() * xposition,
"y" : $galaxy.height() * yposition,
};

$('<div class="star star-type-' + star_type + '"></div>').appendTo($galaxy).css({
"top" : position.y,
"left" : position.x
});

iterator++;
}

};

generateStars2();

var generateStars3 = function(){

var $galaxy = $(".galaxy3");
var iterator = 0;

while (iterator <= 50){
var xposition = Math.random();
var yposition = Math.random();
var star_type = Math.floor((Math.random() * 50) + 1);
var position = {
"x" : $galaxy.width() * xposition,
"y" : $galaxy.height() * yposition,
};

$('<div class="star star-type-' + star_type + '"></div>').appendTo($galaxy).css({
"top" : position.y,
"left" : position.x
});

iterator++;
}

};

generateStars3();
})(jQuery);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<div class="galaxy1"></div>
<div class="galaxy2"></div>
<div class="galaxy3"></div>
</body>

最佳答案

配置是一个关键模式,参数略有不同,但逻辑相似(或在您的情况下,完全相同):

代码

var generateStars = function($galaxy, threshold){

var iterator = 0;

while (iterator <= threshold){
var xposition = Math.random();
var yposition = Math.random();
// using the 'threshold' parameter passed into the function
var star_type = Math.floor((Math.random() * threshold) + 1);
// no need to re-initialized '$galaxy' as it's now passed into the function
var position = {
"x" : $galaxy.width() * xposition,
"y" : $galaxy.height() * yposition,
};

$('<div class="star star-type-' + star_type + '"></div>').appendTo($galaxy).css({
"top" : position.y,
"left" : position.x
});

iterator++;
}

};

用法

// getting all the html elements
var $galaxy1 = $(".galaxy1");
var $galaxy2 = $(".galaxy2");
var $galaxy3 = $(".galaxy3");

// passing the properties of the found elements and the threshold
// to be utilized inside the function
generateStars($galaxy1, 100);
generateStars($galaxy2, 25);
generateStars($galaxy3, 50);

关于javascript - 如何将多个 JS 函数合并为一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42503556/

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