Duplicar posible:
Self-references in object literal declarationsobjeto hacer referencia a su propia propiedad en initilization
se puede hacer esto?(obviamente no en esta sintaxis)
var a = {
b : 10,
c : this.b * 2 // returns 'undefined'
};
también he intentado
var a = {
b : 10,
c : a.b * 2 // throws error 'a is undefined'
};
y
var a = {
b : 10,
c : b * 2 // throws error 'b is undefined'
};
Tiene sentido para mí que estos valores no están definidos, no tengo terminado de definirlos. Sin embargo, me parece que habría una solución para la estructuración de un objeto de esa manera y tener c
estar condicionada a b
Considerando que está inicializando 'b' en tiempo de compilación, ¿por qué' c' estaría condicionado a ello? ¡Ya sabes lo que es! –
Lo que he publicado es un ejemplo simplificado. No siempre sabré qué es 'b'. De lo contrario, no necesitaría tenerlo condicional. pensar 'b: function (x) {/ * hacer algunas cosas */return y;},' – rlemon
@Chad 1. JS no está compilado, 2. es perfectamente normal inicializar una variable con una expresión basada en otra, y otros idiomas (por ejemplo, C) lo gestionan perfectamente bien. – Alnitak