我试图重复使用此处的代码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());
但是,当我点击按钮时,没有任何变化。谁能告诉我为什么?
答案 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)
您的代码中存在许多错误。
coins
构造函数中的WorkT
是什么?它是全局变量,还是您想要this.coins
?this.gain
和this.loss
不存在。它们只是gain
和loss
。WorkT
中没有名为WorkT
的功能。您可能也想定义该功能。以下是代码的外观,假设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());