2008-12-05 2 views

Répondre

8

Vous ne pouvez pas le faire de cette façon. Lorsque vous êtes en train de construire un objet (c'est ce que vous faites réellement en utilisant les accolades), il n'y a aucun moyen d'accéder à ses propriétés avant qu'il ne soit construit.

var test = function() { 
    var o = {}; 
    o['a'] = 1; 
    o['b'] = o['a'] + 1; 
    return o; 
}; 
1

Vous ne pouvez pas l'objet littérales ne supporte notion pas cet accès

4
var t = function() 
     { 
      return new x(); 
     }; 

var x = function() 
     { 
      this.a = 1; 
      this.b = this.a + 1; //works 
     } 

une couche abstraite

modifié pour le formatage, et notant que cela est en train de passer de OLN

0
var test = function() { 
    //private members 
    var a = 1; 
    var b = a + 1; 
    //public interface 
    return { 
     geta : function() { 
      return a; 
     }, 
     getb : function() { 
      return b; 
     } 
    } 
}(); 
Questions connexes