Home  >  Q&A  >  body text

javascript - js format函数出错

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

阿神阿神2632 days ago566

reply all(3)I'll reply

  • PHPz

    PHPz2017-04-11 09:50:46

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

    <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>

    结果图:

    reply
    0
  • 大家讲道理

    大家讲道理2017-04-11 09:50:46

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

    reply
    0
  • 黄舟

    黄舟2017-04-11 09:50:46

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

    reply
    0
  • Cancelreply