`

javascript 类编程(未完)

阅读更多
最近想总结一下JavaScript类编程,有时间写一点。

JavaScript本身是基于原型的,这与普通基于类的编程语言相比,在实现继承的机制上有较大的出入。Javascript 创建一个新类那便是修改了某个对象原型(prototype)的结果。


单例(Singletons)

在JavaScript的单例模式中,我们常常会创建似有Javascript变量或通过高明的必包手法建立似有的方法,以一段程序入口的范例代码就能说明多少问题。

MyApp = function() {
    var data ;//外部无法访问data,这是私有成员
    return {
        init : function() {
            ...
        },

        getData : function() {
            return data;
        }
    }
}




//以下信息来源于Apress.pro.Javascript.design.patterns ,翻译如下(原创非转载):
the basic Structure of the Singleton
单例的基本结构
    /*
    Basic Singleton
    */
    var Singleton = {
      attribute1 : true ,
      attribute2 : 10,
      
       method1 : function() {
       },
       method2 : function(arg) {
        
       }
    }


在这个例子中,所有的成员可以通过单例变量访问到。 你可以通过使用.来访问它们:
(you can access them using the dot notation)

Singleton.attribute1 = false;
var total = Singleton.attribute2 + 5 ;
var result = Singleton.method1();

单例对象可以被修改。你可以添加新的成员。你也可以删除成员,使用关键字"delete"

A singleton with private members(一个含有私有成员的单例)
因为单例对象仅仅实例化一次,所有我们可以使用正确私有方法而无需但无需担心内存。

1 使用下划线符号
在一个单例对象中创建一个私有成员最简单和直接的方法是使用下划线符号。这种方式可以让其他编程者知道这个方法或者属性是私有的,而且只能用在对象的内部。

 /*
  DataParser singleton ,converts character delimited strings into arrays. 
 */
 GiantCorp.DataParser = {
     //private methods . 私有方法
      //清除空格
     _stripWhitespace :function(str) {
       return str.replace(/\s+/,'');
      },
      //字符串分割 delimiter)(分隔符)
     _stringSplit : function(str,delimiter) {
       return str.split(delimiter);
      },

      //public method 
      stringToArray : function(str,delimiter,stripWS) {
         if(stringWS) {
               str = this._stripWhitespace(str);
         }
         var outputArray = this._stringSplit(str,delimiter);
         return outputArray ;
      }
 } 



分享到:
评论

相关推荐

    NEURAL CODE COMPLETION 未完1

    代码补全是现代软件开发不可或缺的一部分,尤其是在动态类型编程语言如JavaScript中,这一功能的实现具有挑战性。神经网络技术为解决这一问题提供了新的可能,它能够从大量的动态类型JavaScript代码库中自动学习代码...

    iOS-Calculator-Javascript

    JavaScript是一种广泛使用的编程语言,尤其在网页开发中不可或缺,它允许我们在浏览器端执行代码,实现动态交互效果。 首先,让我们深入了解一下JavaScript的基础知识。JavaScript是一种解释型、弱类型、基于原型的...

    webbrowser 仿制 天涯社区:国际观察版(未完)

    在计算机编程中,webbrowser通常指的是一个可以浏览和交互网页的应用程序或组件。它不仅需要能够解析HTML、CSS和JavaScript,还要处理图像、视频等多媒体内容。在仿制天涯社区的国际观察版时,我们可能需要用到如...

    WebBrowser的各种使用方法(未完待续)(XE8+WIN7)

    WebBrowser控件是Delphi编程环境中用于嵌入网页浏览功能的组件,它基于Internet Explorer的ActiveX技术,使得在桌面应用中集成网页展示变得简单。在"WebBrowser的各种使用方法(未完待续)(XE8+WIN7)"这个主题中,我们...

    jsOS:javascript模拟操作系统

    all right编程一途永远在学习的路上,现有代码量还不是很多,架构我也一直在思考,我也不是什么大佬,只是一个不断学习的小白,我写这个模拟系统初衷也是为了学习,前端,JavaScript,我是一个喜欢探索未知的人,我...

    2017218007文华_《网络程序设计》实验报告1

    - **未完部分**:实验报告的这部分没有给出完整的信息,但通常会包含实验步骤,遇到的问题,解决方案及实验结果的展示。 通过这两个实验,学生不仅掌握了网络编程的基础,还体验了从无到有构建网页的过程,理解了...

    网页代码很多很有意思真的很……

    标题“网页代码很多很有意思真的很……”虽然未完待续,但足以激发我们对网页编程的好奇心。描述中提到,“使用html编写的网页,很值得去参考,大家一定考看啊!”这无疑强调了学习HTML的价值和乐趣。 HTML允许我们...

    前端资料整合

    3. JavaScript:作为前端的主要编程语言,JavaScript处理网页的动态行为,实现用户交互、数据处理、动画效果等功能。ES6(ECMAScript 6)的引入带来了许多新特性,如类、模块、箭头函数等,提升了代码的可读性和可...

    2021-2022计算机二级等级考试试题及答案No.13868.docx

    【计算机二级考试题】计算机二级等级考试主要涵盖计算机基础知识、...30. 叙述未完,但根据前面的内容,计算机二级考试题目的多样性涉及了计算机操作、编程、数据库管理、网络等多个领域,备考时需全面掌握这些知识。

    新闻发布系统

    在JSP(JavaServer Pages)技术的框架下,新闻发布系统利用Java语言进行服务器端编程,通过HTML、CSS和JavaScript等前端技术构建用户友好的交互界面。JSP允许开发者将动态内容嵌入到静态页面中,使得网页能够根据...

    underscore-parser:underscore.js工具库二进制剖析系列文章及能从underscore.js学到什么东西(持续更新)

    underscore.js是一个轻量,实用,兼容低版本浏览器JavaScript工具库和支持JavaScript多环境下使用。 ###主要 ###为什么要做原始码剖析 最近这段时间也是在重新沉淀自己的技术栈和学习新的技术,虽然在js编码风格上...

    Node.js_Learning

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够使用 JavaScript 来进行服务器端编程。这个"Node.js_Learning"的学习资料可能包含了高玉婷作者对 Node.js 的深入理解和实践指导,虽然描述...

    2021-2022计算机二级等级考试试题及答案No.2074.docx

    【计算机二级等级考试知识点】 1. 计算机中的CPU(中央处理器)...25. 下列未完的题目可能是关于SQL语句或其他编程概念,但根据给定内容无法给出具体答案。如果需要继续深入讨论这些知识点,可以提供完整的题目内容。

    项目:我自己的qq空间

    “源码”标签表明这个项目包含了可查看和分析的代码,可能是用各种编程语言(如HTML、CSS、JavaScript、PHP等)编写,对于学习者来说,这是一个很好的实践案例,可以了解如何构建类似QQ空间的社交应用。而“工具”...

    为网页设计师而生的14个文本编辑器.docx

    #### Sublime Text (未完待续) - **系统平台**: Windows, macOS, Linux - **价格**: 免费试用,购买许可 $80 Sublime Text 是一款广受好评的文本编辑器,适用于多种操作系统。它以其高度可定制性和灵活性而闻名,...

    基于PHP的杰奇cms手机版小说模板php版源码.zip

    6. **数据同步**:与杰奇CMS的后台系统无缝对接,实现PC端和移动端的数据同步,用户在任何设备上都能继续阅读上次未完的小说。 7. **广告管理**:提供广告位管理功能,方便网站运营者插入广告,增加收入来源。 8. ...

    学生综合管理系统毕业论文.doc

    论文中提到了可能使用的开发工具,包括数据库管理系统(如MySQL)、编程语言(如Java或Python)、前端开发框架(如HTML、CSS和JavaScript,可能结合Bootstrap或Vue.js)以及项目管理工具(如Git)。 2.3 技术可行性...

    2021-2022计算机二级等级考试试题及答案No.14461.docx

    ### 计算机二级等级...- **未完待续**:根据题目提供的部分信息来看,似乎还有更多关于Windows操作系统的知识点没有完整列出。以上内容覆盖了题目中提到的所有知识点,如有需要,还可以进一步展开讨论其他相关主题。

    Dom与浏览器兼容性说明

    对于文档中的“未完待续”和日期“康董于:2010-07-24”,可能表明这是一篇撰写于2010年的文章。在过去十年间,随着Web标准的发展和浏览器制造商对标准的支持的提升,一些兼容性问题已经得到了解决。不过,即使在...

    2021-2022计算机二级等级考试试题及答案No.3565.docx

    14. ASP.NET描述:ASP.NET不使用JavaScript作为主要编程语言,而是支持多种.NET兼容语言。 15. 全局配置文件:Web应用程序的全局配置文件通常是Web.config。 16. 存储器特性:内存(RAM)和外存(如硬盘)在速度、...

Global site tag (gtag.js) - Google Analytics