JavaScript使用数组附加文本

时间:2014-10-05 23:46:11

标签: javascript arrays

我试图重复使用此处的代码Edit a variable within an array来创建类似但不太复杂的内容。

我做了'工作'功能:

var WorkT = function(gain,loss,message) {
    coins += this.gain;
    coins -= this.loss;
    this.message = message;
}


workT1 = new WorkT(30,0,'<span class="red">+ 30 Gold Coins');
workT2 = new WorkT(15,0,'<span class="red">+ 15 Gold Coins');
workT3 = new WorkT(80,0,'<span class="red">+ 80 Gold Coins');
workT4 = new WorkT(1,0,'<span class="red">+ 1 Gold Coin');

WorkTs = [workT1,workT2,workT3,workT4];

我试图稍后在我的代码中调用它:

$('#output').html(WorkTs[Math.floor(Math.random() * 4)].WorkT()); 

但是,当我点击按钮时,没有任何变化。谁能告诉我为什么?

2 个答案:

答案 0 :(得分:2)

您的WorkT个实例没有WorkT()功能。

您需要在WorkT&#39;类中声明一个名为WorkT(或其他)的函数。 :

var WorkT = function(gain,loss,message) {
    //...
    this.work = function () {
        //Do Something.
    }
}

或者您无法在您的实例上调用它:

$('#output').html(WorkT[Math.floor(Math.random() * 4)].work()); 


这一切都取决于你在这里想要达到的目标。

答案 1 :(得分:0)

您的代码中存在许多错误。

  1. coins构造函数中的WorkT是什么?它是全局变量,还是您想要this.coins
  2. this.gainthis.loss不存在。它们只是gainloss
  3. 班级WorkT中没有名为WorkT的功能。您可能也想定义该功能。
  4. 以下是代码的外观,假设coins是全局变量。

    var WorkT = function(gain,loss,message) {
        coins += gain;
        coins -= loss;
        this.message = message;
    
        this.work = function(){
            //Do something here.
        }
    }
    

    $('#output').html(WorkTs[Math.floor(Math.random() * 4)].work());