javascript - 如何创建构造函数?

标签 javascript function object

问题:我正在尝试创建一个名为 Wizard 的构造函数,它接受 2 个参数:名称和拼写,然后创建一个 Wizard 对象:

“向导的每个特定实例必须有一个名称属性(字符串)、一个字符串数组形式的拼写属性以及一个能够以字符串格式返回随机拼写的castSpell 方法。”

该对象具有以下属性:名称为“Gorrok”(字符串),拼写为“abracadabra”和“cadabraabra”(数组)。

目标:调用castSpell方法来显示随机咒语,如下所示: Gorrok:咒语

代码:到目前为止我只编写了以下代码,我陷入了这个阶段!

function Wizard(name, spells){
    this.name = name;
    this.spells = [spells];
    this.castSpell = function(){
        var v = Math.random();
        if (v >= 1)
            document.write(this.name + " :  " + this.spells[0]);
        else
            document.write(this.name + " :  " + this.spells[1]);
    }
}
var w = new Wizard("Gorrok", "abracadabra", "cadabraabra");
w.castSpell();

最佳答案

因此,Math.random() 将返回 0 到 1 之间的数字,因此它永远不会大于 1。

此外,您无法按照现有方式将剩余参数转换为数组。

最简单的修复:

function Wizard(name, spells){
    this.name = name;
    this.spells = spells; // assume spells is already an array
    this.castSpell = function(){
        var v = Math.random();
        if (v >= 0.5)
            document.write(this.name + " :  " + this.spells[0]);
        else
            document.write(this.name + " :  " + this.spells[1]);
    }
}
var w = new Wizard("Gorrok", ["abracadabra", "cadabraabra"]);
w.castSpell(); 

关于javascript - 如何创建构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38545815/

相关文章:

javascript - 在 react 运动中重新启动状态/ Prop 更改的动画

javascript - wp_编辑器 : How to load wp_editor on demand using jQuery?

javascript - 如何访问另一个函数中的回调参数?

java - java中使用(Class)对象会恢复对象吗?

php - 阻止新对象更新旧对象的变量

python - 不懂Python的csv.reader对象

javascript - 使用 JavaScript 在新窗口/选项卡(target=_blank)中打开功能检测

javascript - 文件浏览器/选择器 vaadin

python - 根据三列的值有条件地交互式计算列

c - 从两个数组中取出正数并从中创建第三个