En Python, vous pouvez quelque chose comme ceci:carte Javascript méthodes d'objet natif
>>> list(map(str.upper, ['foo','bar']))
['FOO', 'BAR']
Je voudrais pouvoir faire quelque chose de similaire en javascript:
J'ai essayé ce qui suit dans Chrome en utilisant la mise en œuvre de la carte native (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map):
['foo','bar'].map(String.prototype.toUpperCase)
['foo','bar'].map(String.prototype.toUpperCase.call)
Pourquoi ne pas appeler le travail? Existe-t-il une manière élégante de faire ceci ou dois-je emballer toUpperCase dans une fonction de rappel? Thx
'toUpperCase.call' ne fonctionne pas car' call' est résolu par rapport à 'Function.prototype' et n'est donc pas lié à' toUpperCase'. Il regarde 'this' pour savoir quelle méthode est appelée, et la façon dont' map' appelle la fonction, 'this' est' undefined'. –