操纵实例的属性
manipulating properties of instances
下面是我的代码:
var Placemat = function(id,id2,id3) {
this.bucket = "";
this.result = 0;
this.bucketvalue = 0;
this.total = 0;
this.light = 0;
this.deal = function() {
var card1 = deck.shift();
var card2 = deck.shift();
this.hand = document.getElementById(id2);
this.hand.innerHTML = card1.num + " of " + card1.suit + ", " + card2.num + " of " + card2.suit;
if (card1.num == "Ace" && card2.value == "Ace") {
card1.value = 11;
}
this.result = this.result + card1.value + card2.value;
this.total = this.result;
totalplayer = totalplayer + 1;
return this.total;
};
this.hit = function() {
this.light++;
var card3 = deck.shift();
var nhand = ", " + card3.num + " of " + card3.suit;
this.bucket = this.bucket + nhand;
this.bucketspace = document.getElementById(id3);
this.bucketspace.innerHTML = this.bucket;
this.bucketvalue = this.bucketvalue + card3.value;
this.total = this.total + this.bucketvalue;
if (this.total > 21) {
totaldone = totaldone + 1;
alert("Bust! By " + nhand);
refresh();
};
if (this.light == 3) {
alert("5 Card Blackjack! You win!");
refresh();
};
return this.total;
};
this.stay = function() {
this.player = document.getElementById(id);
this.player.style.backgroundColor = "gray";
this.player.innerHTML = "Stayed at " + this.total;
totaldone = totaldone + 1;
};
};
我在这里创建了两个构造函数实例:
var d_placemat = new Placemat(param1,param2);
var tl_placemat = new Placemat(param3,param4);
我在这里叫它们:
function compare() {
if (d_placemat.total > tl_placemat.total) {
alert("Dealer beats TL!");
refresh();
}
else {
alert("TL beats Dealer!");
refresh();
}
};
};
由于某种原因,我不能访问compare()
中的d_placemat.total
和tl_placemat.total
,即使它们在程序的早期被赋值并且都包含在构造函数中。有人知道这里出了什么问题吗?
如果您在比较函数中修复了支撑,它似乎在这里为我工作:http://jsfiddle.net/jfriend00/wnzz8/并且可以访问您所期望的两个总价值。
function compare() {
if (d_placemat.total > tl_placemat.total) {
alert("Dealer beats TL!");
}
else {
alert("TL beats Dealer!");
}
}
注:我还删除了refresh()调用,因为我不知道它们做了什么,而且您没有提供它们的代码。
相关文章:
- 为什么属性存在于对象实例上,即使其原型发生了更改
- 为什么函数对象的实例没有继承函数原型属性
- 实例化一个javascript对象并在一行中填充其属性
- Backbone.Model.extend不创建实例属性
- 在定义了构造函数之后,是否可以将实例属性添加到JavaScript原型中
- 如何将占位符属性添加到 CKEditor 的实例
- 从原型方法更改实例属性
- 为下一次实例化设置的主干视图属性
- 如何将可拖动属性分配给所有实例
- 在 JavaScript 中按属性查找类实例
- 通过构造函数属性和运算符实例设置继承
- 在 IIFE 中使用实例属性
- 为什么 PrototypeJS 类实例共享相同的属性
- 在 ES6 中,允许解构类实例属性
- 在 ES6 中自动将参数设置为实例属性
- 如何将自定义属性添加到 HTML 环境,该属性将默认为元素的每个新实例上的空对象
- 用父属性实例化子类的Javascript
- 不使用"new"访问原型属性实例化函数对象
- 在JavaScript中,如何访问超类的属性'实例
- 使用可选属性实例化类的正确方法