我正在尝试在Javascript中使用一些OO,而我来自C ++和Ruby。我已经设法创建了一个对象,但是在里面嵌入一个对象几乎没有什么痛苦。
function Model()
{
//...
}
function Player(props)
{
var props = {
// ...
}
var model = new Model(props); // I've tried 'this.model = new Model() as well
}
var props = {
// ...
}
var player = new Player(props);
播放器被创建得很好,但是如果我尝试嵌套对象就失败了。我做错了什么。
答案 0 :(得分:2)
你很亲密。在javascript中有更好的“seudo-extends”对象方法。 jQuery.extend是一种可能的方式。您也可以编写自己的方法来检查属性。我认为最大的问题是在props
函数中覆盖Player
。
this
是关键var a = {}
和函数var a = new Method();
之间的区别非常重要。但是,看起来你的表现还不错。function Model(data)
{
this.Name = data.Name;
this.Other = data.Other;
}
function Player(props)
{
var privateProps = {
Name: 'testing'
};
privateProps.Other = props.Other;
this.model = new Model(privateProps); // I've tried 'this.model = new Model() as well
}
var props = {
Other: 'Other'
}
var player = new Player(props);