J'ai ceci:
this.f = function instance(){};
j'aimerais avoir ça :
this.f = function ["instance:" + a](){};
J'ai ceci:
this.f = function instance(){};
j'aimerais avoir ça :
this.f = function ["instance:" + a](){};
Cela le fera essentiellement au niveau le plus simple :
"use strict";
var name = "foo";
var func = new Function(
"return function " + name + "(){ alert('sweet!')}"
)();
//call it, to test it
func();
Si vous voulez plus de fantaisie, j'ai écrit un article sur " Les noms de fonctions dynamiques en JavaScript ".
Vous pouvez utiliser Object.defineProperty comme indiqué dans la référence JavaScript MDN :
var myName = "myName";
var f = function () { return true; };
Object.defineProperty(f, 'name', {value: myName, writable: false});
Comme d'autres l'ont mentionné, ce n'est pas la solution la plus rapide ni la plus recommandée. La solution de Marcosc ci -dessous est la voie à suivre.
Vous pouvez utiliser eval :
var code = "this.f = function " + instance + "() {...}";
eval(code);
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.