js format函数出错

var template1="我是{0},今年{1}了"; 
var template2="我是{name},今年{age}了"; 
var result1=template1.format("loogn",22); 
var result2=template1.format({name:"loogn",age:22}); 

阅读 5.7k
3 个回答

这个需要你定义这个函数才能调用.顺便贴一下我代码:

<script type="text/javascript">
    String.prototype.format = function() {
        var resultStr = this.toString();
        // 参数为对象
        if(typeof arguments[0] === "object") {
            for(var i in arguments[0]) {
                resultStr = resultStr.replace("{" + i + "}", arguments[0][i]);
            }
        }
        // 多个参数
        else {
            for(var i = 0; i < arguments.length; i ++) {
                resultStr = resultStr.replace("{" + i + "}", arguments[i]);    
            }
        }
        return resultStr;
    };
    var template1 = "我是{0},今年{1}了"; 
    var template2 = "我是{name},今年{age}了"; 
    var result1 = template1.format("loogn",22);
    var result2 = template2.format({name:"loogn",age:22}); 
    console.log("result1: " + result1);
    console.log("result2: " + result2);
</script>

结果图:

clipboard.png

js string类型没有format这个方法的啊

format函数本来就未定义,直接调用当然报错了.
楼主应该是直接搜索到了别人的代码,但是没仔细看,鉴定完毕。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题