Node.js util.format()为String.prototype
我正在尝试创build/扩展node.js util.format函数,以便它可以用作原型(例如:“Hello%s”.format(“World”))。 不过,我一直试图尝试不成功。 我尝试了以下格式无济于事:
String.prototype.format = function(){return util.format(this, arguments)};
和
String.prototype.format = function(){return util.format.apply(this, arguments)};
并且
String.prototype.format = function(args){return util.format(this, args)};
这些都没有工作。 你有什么想法我做错了吗?
谢谢,曼努埃尔
我假设你会这样称呼它?
"%s: %s".format('key', 'val');
喜欢这个:
String.prototype.format = function(){ var args = Array.prototype.slice.call(arguments); args.unshift(this.valueOf()); return util.format.apply(util, args); };
在你的第一个例子中,你只传递2个参数,格式string和参数对象。 你接近第二次尝试,但格式的上下文应该是util
。 您需要this
添加到应用于format
的参数集。 另外,在string上处理this
问题时,您使用的是stringObject,而不是string文字,因此您必须使用valueOf
获取文字版本。