Javascript:如何创建一个函数,该函数可以从固定数量的类中生成X数量的对象

Javascript: How do I create a function that can generate an X amount of objects drawing from fixed amount of classes?

本文关键字:函数 对象 创建 何创建 Javascript 一个      更新时间:2023-09-26

对于我的编码任务,我的任务是创建一个函数,该函数可以从固定数量的类中生成X数量的对象。但是在生成对象时,我想将这些对象存储在数组中。我将如何在Javascript中做到这一点?

与处理两个对象几乎相同。只需使用数组的长度来选择一个随机元素,并使用循环来执行 X 次操作:

/* Class definitions */
function Animal(){ var a = document.createElement('div'); a.className = 'animal'; return a}
function Horse(){ var a = new Animal(); a.className += ' horse'; return a }
function Pig(){ var a = new Animal(); a.className += ' pig'; return a }
function Rat(){ var a = new Animal(); a.className += ' rat'; return a }
/* Variable definitions */
var animals = ['Horse', 'Pig', 'Rat'],
    output = document.getElementById('output'),
    numberOfDraws = 5,
    res = [];
/* Auxiliary functions */
// Returns a random element from a given array
function pickRandom(arr){
    return arr[ Math.floor( Math.random()*arr.length ) ];
}
/* Main script */
// Pick a random object 5 times, store it in 'res' and show it
for(var i = 0; i < numberOfDraws; i++){
  res.push( eval('new ' + pickRandom(animals) + '()') );
  output.appendChild( res[i] );
}
.animal{float:left;padding:40px;background-size:100%}.horse{background-image:url(https://pbs.twimg.com/profile_images/587037647966613504/Mk5oEKsb.png)}.pig{background-image:url(https://33.media.tumblr.com/avatar_c2b180faa484_128.png)}.rat{background-image:url(http://38.media.tumblr.com/avatar_614c66cef635_128.png)}
<pre id="output"></pre>

编辑:要获取类的实例,您可以eval类名。请参阅上面的演示。