Javascript嵌套对象

时间:2012-09-26 14:06:49

标签: javascript oop

我正在尝试在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);

播放器被创建得很好,但是如果我尝试嵌套对象就失败了。我做错了什么。

1 个答案:

答案 0 :(得分:2)

Example

你很亲密。在javascript中有更好的“seudo-extends”对象方法。 jQuery.extend是一种可能的方式。您也可以编写自己的方法来检查属性。我认为最大的问题是在props函数中覆盖Player

  • 功能this是关键
  • 函数是JavaScript中唯一的范围,因此请注意命名变量
  • 理解对象文字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);