2012-09-26 7 views
1

J'essaye de faire quelques OO en Javascript, et je viens de C++ et Ruby. J'ai réussi à créer un objet, mais imbriquer un objet à l'intérieur est un peu pénible. Le joueur est créé correctement, mais si j'essaie d'imbriquer l'objet, il échoue. Qu'est-ce que je fais mal.Objets imbriqués Javascript

Répondre

2

Example

Vous étiez près. Il y a de bien meilleures façons de "seudo-extension" objet en javascript. jQuery.extend est une façon possible. Vous pouvez également écrire votre propre méthode qui vérifie les propriétés. Je pense que la plus grande panne pour vous était d'écraser props dans la fonction Player.

  • Avec des fonctions this est la clé
  • Les fonctions sont la seule portée en JavaScript, donc soyez prudent avec les variables de nommage
  • Il est important de comprendre la différence entre l'objet var a = {} littéral et fonctions var a = new Method();. Cependant, il semble que vous l'ayez bien.

code

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);