js 中常用的format函数

js中经常要写dom 和 数据拼接的情况,下面这种format传参方式可以解决。

复制代码
$.format = function (source, params) {
    if (arguments.length == 1)
        return function () {
            var args = $.makeArray(arguments);
            args.unshift(source);
            return $.format.apply(this, args);
        };
    if (arguments.length > 2 && arguments.constructor != Array) {
        params = $.makeArray(arguments).slice(1);
    }
    if (arguments.constructor != Array) {
        params = [params];
    }
    $.each(params, function (i, n) {
        source = source.replace(new RegExp("\\{" + i + "\\}", "g"), n);
    });
    return source;
};
复制代码

测试代码:

1 $.format("<div>我是字符串A我的值是{0}  ,我是字符串A我的值是{1}  </div>","aaa","bbb");//'<div>我是字符串A我的值是aaa  ,我是字符串A我的值是bbb  </div>'

 

关于argument:

arguments是一个对象不是一个数组Array 。它类似于Array,但除了length属性和索引元素之外没有任何Array属性。

1 // 由于arguments不是 Array,所以无法使用 Array 的方法,所以通过这种方法转换为数组
2  
3 var args = [].slice.call(arguments);  // 方式一
4 var args = Array.prototype.slice.call(arguments); // 方式二
5  
6 // 下面是 es6 提供的语法
7 let args = Array.from(arguments)   // 方式一
8 let args = [...arguments]; // 方式二

 

转载地址:https://www.cnblogs.com/william-lin/p/3472983.html 

posted @   啄木鸟伍迪  阅读(3955)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
历史上的今天:
2021-09-21 十六、反射
2018-09-21 mac 倍速播放
2016-09-21 jdbc 数据的增删改查的Statement Resultset PreparedStatement
2016-09-21 jdbc 数据库连接
//火箭 GenerateContentList();

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示