1

我正在尝试用 Javascript 做一些面向对象,而且我来自 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);

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

4

1 回答 1

2

例子

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

  • 功能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);

​</p>

于 2012-09-26T14:11:05.273 回答