Comment accéder à 'a' ci-dessous?étendue de l'objet retourné dans la fonction javascript
var test = function() {
return {
'a' : 1,
'b' : this.a + 1 //doesn't work
};
};
Comment accéder à 'a' ci-dessous?étendue de l'objet retourné dans la fonction javascript
var test = function() {
return {
'a' : 1,
'b' : this.a + 1 //doesn't work
};
};
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;
};
Vous ne pouvez pas l'objet littérales ne supporte notion pas cet accès
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
var test = function() {
//private members
var a = 1;
var b = a + 1;
//public interface
return {
geta : function() {
return a;
},
getb : function() {
return b;
}
}
}();