usercount

Js模型和封装

一点拙劣的小分享,欢迎批评和补充

我们经常在Js中为我们的各类组件,构造Json格式的假数据。我们看如下代码:

var jsonResult = [
        { 'name': 'ws', 'age': '22' },
        { 'name': 'td', 'age': '22' }           //我们把jsonResult[x]当作对象,其中的自然为属性
    ];
    window.onload = function () {
        alert(jsonResult[0].name);
    }

那么对象的方法如下:

var jsonResult = [
        { 'name': 'ws', 'age': '22','speakFunc':function () { alert('hi,my name is ws'); } },
        { 'name': 'td', 'age': '22' ,'speakFunc':function () { alert('hi my name is '+jsonResult[1].name); }}           //我们把jsonResult[x]当作独立个体对象
    ];
    window.onload = function () {
        jsonResult[0].speakFunc();
        jsonResult[1].speakFunc();
    }

 

下面给出可读性,复用性更佳的方法,包括闭包。

复制代码
 var myUpStageClass = function () {
        var instance = {
            firstFunc: function () {                    //方法名可以不用引号
                alert('第一个方法输出');
            },
            'secondFunc': function (param) {
                alert(param);
            }
        }
        return instance;                                 //返回闭包的对象
    }
    var appObj = myUpStageClass();                       //接受闭包的对象,是不是像实例化
    window.onload = function () {
        appObj.firstFunc();
        appObj.secondFunc('第二个方法输出');
    }
复制代码

建议把我们所需要的,复用性高的JS,作为我们项目最顶层的js封装好,并且在闭包外的全局上接受闭包对象,提供给下层调用。

 

posted @   坦荡  阅读(1250)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示