function Card(styleAttr, cardInfo)
{
//Attributes
this.styleAttr = styleAttr;
this.cardInfo = cardInfo;
//Functions
constructCard(this.styleAttr);
}
function constructCard(styleAttr) {
var cardCSS = {
'width':styleAttr.width,
'height':styleAttr.height,
'background-color':'black'
}
$('<div class="Card"></div>').appendTo('body').css(cardCSS);
}
嗨,这个Card类得到另外两个对象作为它的参数。其中一个是styleAttr,它包含一个名为'width'的属性。除非我将此对象传递给constructCard,否则我无法访问styleAttr.width属性。以上示例有效。但如果我这样做:
function constructCard() {
var cardCSS = {
'width': this.styleAttr.width, //Undefined
'height':styleAttr.height,
'background-color':'black'
}
$('<div class="Card"></div>').appendTo('body').css(cardCSS);
}
主要是其他语言的代码,所以我不确定,我是否必须将函数constructCard绑定到类才能访问它的属性,或者我被迫传递对象来获取值。或者我应该让它们成为全局变量?
这一定是我从Moz Doc's中找不到的简单。
由于
答案 0 :(得分:1)
尝试:
function Card(styleAttr, cardInfo)
{
this.styleAttr = styleAttr;
this.cardInfo = cardInfo;
this.construct = function () {
var cardCSS = { 'width':this.styleAttr.width, 'height':this.styleAttr.height, 'background-color':'black' }
$('<div class="Card"></div>').appendTo('body').css(cardCSS);
}
}
然后你就这样使用它:
var card = new Card(styleAttr, cardInfo);
card.construct();
答案 1 :(得分:0)
简单的旧原型继承没有错:
function Card(styleAttr, cardInfo) {
//Attributes
this.styleAttr = styleAttr;
this.cardInfo = cardInfo;
}
Card.prototype.constructCard = function () {
var cardCSS = {
'width': this.styleAttr.width,
'height': this.styleAttr.height,
'background-color':'black'
};
$('<div class="Card"></div>').appendTo('body').css(cardCSS);
}
然后:
var card_0 = new Card(..., ...)
card_0.constructCard();