Mise à jour : Comme un commentateur l'a fait remarquer, toute version de JavaScript qui supporte les fonctions de flèche sera également soutien ({[myKey]:myValue})
donc cette réponse a aucun cas d'utilisation réel (et, en fait, il pourrait se briser dans certains cas particuliers).
N'utilisez pas la méthode indiquée ci-dessous.
I Je ne peux pas croire Ceci n'a pas encore été posté : il suffit d'utiliser les fonctions flèches avec une évaluation anonyme !
Complètement non invasif, qui ne touche pas à l'espace de noms et qui ne prend qu'une ligne :
myNewObj = ((k,v)=>{o={};o[k]=v;return o;})(myKey,myValue);
démo :
var myKey="valueof_myKey";
var myValue="valueof_myValue";
var myNewObj = ((k,v)=>{o={};o[k]=v;return o;})(myKey,myValue);
console.log(myNewObj);
utile dans les environnements qui ne prennent pas en charge le nouveau système de gestion de l'information. {[myKey]: myValue}
syntaxe pourtant, telle que - apparemment ; je viens de le vérifier sur ma console de développeur Web - Firefox 72.0.1, sortie 2020-01-08. Je me suis trompé ; il suffit de mettre le truc entre parenthèses et ça marche.
(Je suis sûr que vous pourriez potentiellement créer des solutions plus puissantes/extensibles ou autre, en utilisant intelligemment les éléments suivants reduce
mais à ce stade, il serait probablement préférable de séparer la création d'objets en une fonction distincte au lieu de tout mettre en ligne de manière compulsive).
non pas que cela ait de l'importance puisque le PO a posé cette question il y a dix ans, mais par souci d'exhaustivité et pour démontrer comment c'est exactement le site Pour répondre à la question telle qu'elle est formulée, je vais la montrer dans le contexte original :
var thetop = 'top';
<something>.stop().animate(
((k,v)=>{o={};o[k]=v;return o;})(thetop,10), 10
);