2013-03-05 41 views
1

我試圖創建/擴展node.js util.format函數,以便它可以用作原型(例如:「Hello%s」.format(「World 「))。不過,我嘗試嘗試不成功。我曾嘗試以下格式無濟於事:Node.js util.format()as String.prototype

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)}; 

無。你有什麼想法我做錯了嗎?

感謝, 曼努埃爾

回答

5

我想你會喜歡這種被稱之爲?

"%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個參數,格式字符串和參數對象。你接近第二次嘗試,但格式的上下文可能應該是util。您需要將this添加到應用於format的參數集。當在字符串上使用this時,您正在使用字符串Object而不是字符串文字,因此您必須使用valueOf來獲得文字版本。

相關問題