8
votes

Fixer deux propriétés égales dans la déclaration

Je veux définir deux propriétés égales les unes aux autres dans un seul objet. Voici un exemple:

var obj = {
    a: function() { ... },
    b: alert,
};
obj.c = obj.a;


4 Réponses :


1
votes

Vous pouvez d'abord déclarer la fonction et l'utiliser avec A & C : xxx


0 commentaires

1
votes

Vous pouvez mettre la valeur dans une variable distincte: xxx

Cependant, vous ne pouvez rien faire mieux que cela.


0 commentaires

1
votes

Si vous souhaitez tout faire à l'intérieur de l'initialiseur d'objet, vous pouvez appeler une propriété appeler la fonction de l'autre et relais tous les arguments à l'aide de la propriété Function.Arguments: XXX

Toutefois, Votre meilleur pari peut être de créer une variable contenant la fonction anonyme en premier, puis attribuez sa valeur aux deux propriétés de votre initialisateur d'objet: xxx

Vous pouvez également faire quelque chose comme ça, Mais j'irais avec l'approche ci-dessus: xxx


0 commentaires

1
votes
var obj = { 
    a: function() { alert("hello")},
    b: alert,
    c: function(){return this.a()}
};

obj.c();
As SLaks mentioned, this won't work if the functions have properties (eg, prototype or arguments.callee).

1 commentaires

Cela ne fonctionnera pas si les fonctions ont des propriétés (par exemple, prototype ou arguments.callee ).