随笔- 473
文章- 6
评论- 337
阅读-
387万
05 2012 档案
JS 抽象类
摘要:6.7 实现抽象类 6.7.1 抽象类和虚函数 虚函数是类成员中的概念,是只做了一个声明而未实现的方法,具有虚函数的类就称之为抽象类,这些虚函数在派生类中才被实现。抽象类是不能实例化的,因为其中的虚函数并不是一个完整的函数,不能被调用。所以抽象类一般只作为基类被派生以后再使用。 和类的继承一样,JavaScript并没有任何机制用于支持抽象类。但利用JavaScript语言本身的性质,可以实现自己的抽象类。 6.7.2 在JavaScript实现抽象类 在传统面向对象语言中,抽象类中的虚方法必须先被声明,但可以在其他方法中被调用。而在JavaScript中,虚方法 就可以看作该类中没有定义..
阅读全文
Javascript内存泄露
摘要:1. 什么是内存泄露? 内存泄露是指分配给应用的内存不能被重新分配,即使在内存已经不被使用的时候。正常情况下,垃圾回收器在 DOM 元素和 event 处理器不被引用或访问的时候回收它们。但是,IE 的早些版本(IE7和之前)中内存泄露是很容易出现的,因为内存管理器不能正确理解 Javascript 生命周期而且在周期被打破(可以通过赋值为 null 实现)前不会回收内存。 2. 为什么你需要注意它? 在大型 Web 应用程序中内存泄露是一种常见的无意的编程错误。内存泄露会降低 Web 应用程序的性能,直到浪费的内存超过了系统所能分配的,应用程序将不能使用。作为一位 Web...
阅读全文
深入理解JavaScript系列(47):对象创建模式(上篇)
摘要:介绍 本篇主要是介绍创建对象方面的模式,利用各种技巧可以极大地避免了错误或者可以编写出非常精简的代码。 模式1:命名空间(namespace) 命名空间可以减少全局命名所需的数量,避免命名冲突或过度。一般我们在进行对象层级定义的时候,经常是这样的: var app = app || {}; app.moduleA = app.moduleA || {}; app.moduleA.subModule = app.moduleA.subModule || {}; app.moduleA.subModule.MethodA = function () { console.log("prin
阅读全文
深入理解JavaScript系列(48):对象创建模式(下篇)
摘要:介绍 本篇主要是介绍创建对象方面的模式的下篇,利用各种技巧可以极大地避免了错误或者可以编写出非常精简的代码。 模式6:函数语法糖 函数语法糖是为一个对象快速添加方法(函数)的扩展,这个主要是利用prototype的特性,代码比较简单,我们先来看一下实现代码: if (typeof Function.prototype.method !== "function") { Function.prototype.method = function (name, implementation) { this.prototype[name] = implementation; ...
阅读全文
Javascript 编程风格
摘要:Douglas Crockford 是 Javascript 权威,Json 格式就是他的发明。 去年 11 月他有一个演讲(Youtube),谈到了好的 Javascript 编程风格是什么。 我非常推荐这个演讲,它不仅有助于学习 Javascript,而且能让你心情舒畅,因为 Crockford 讲得很幽默,时不时让听众会心一笑。 下面,我根据这个演讲和 Crockford 编写的代码规范,总结一下"Javascript 编程风格"。 所谓"编程风格"(programming style),指的是编写代码的样式规则。不同的程序员,往往有不同的编...
阅读全文
程序员开发大型应用程序的技巧
摘要:英文原文:Tips to Developers Starting on Large Applications 假如你是一名Java开发者,正在开发和维护包含2000个类并使用了很多框架的应用程序。你要如何理解这些代码呢?在典型的Java企业项目 小组中,大部分能够帮你的高级工程师看起来都很忙,文档也很少。你需要尽快交付成果,并向项目组证明自己的能力。你会如何处理这种状况呢?这篇文章为开始 开发新项目的Java开发者提供了一些建议。 1. 不要试图一下子搞懂整个项目 仔细考虑一下,为什么你会想要先理解项目代码呢?大部分情况是有人要求你修复一个bug,或者增强...
阅读全文
如何编写可维护的面向对象JavaScript代码
摘要:英文原文:How to Write Maintainable OO JavaScript Code 能够写出可维护的面向对象 JavaScript 代码不仅可以节约金钱,还能让你很受欢迎。不信?有可能你自己或者其他什么人有一天会回来重用你的代码。如果能尽量让这个经历不那么痛苦,就可以节省不少 时间。地球人都知道,时间就是金钱。同样的,你也会因为帮某人省去了头疼的过程而获得他的偏爱。但是,在开始探索如何编写可维护的面向对象 JavaScript 代码之前,我们先来快速看看什么是面向对象。如果已经了解面向对象的概念了,就可以直接跳过下一节。 什么是面向对象? 面向对象编程主要通过...
阅读全文
禅道程序员的10条原则
摘要:英文原文:The 10 rules of a Zen programmer 在一个阴雨的早上,我坐在桌子旁,开始想如何才能高效的工作。在我成为一个自由职业者之前,我有很长一段时间都很努力工作,但收效甚微。 我在 2006 开始接触禅学。我马上意识到:古代的禅宗大师们几百年前早就已经知道现今的程序员应该如何工作。虽然我很讨厌“如何成为一个更好的程序员”之类的文章,但我仍旧想分享一些我的想法。它对我来说起到个提醒的作用,如果你有什么想法,也请留言。 0. 专注 Focus 如果你决定开始工作,请尽力的做好它。不要同一时间做几件事情。一次只做一件事情。如果你多线程工作的话,你不一...
阅读全文
前端必读:浏览器内部工作原理
摘要:目录 一、介绍 二、渲染引擎 三、解析与DOM树构建 四、渲染树构建 五、布局 六、绘制 七、动态变化 八、渲染引擎的线程 九、CSS2可视模型 英文原文:How Browsers Work: Behind the Scenes of Modern Web Browsers 一、介绍 浏览器可以被认为是使用最广泛的软件,本文将介绍浏览器的工作原理,我们将看到,从你在地址栏输入google.com到你看到google主页过程中都发生了什么。 将讨论的浏览器 今天,有五种主流浏览器——IE、Firefox、Safari、Chrome...
阅读全文
javascript 杂谈之哪种写法你更喜欢?
摘要:思维导图 介绍 老是在写js,你平时是怎么写你的js呢?更喜欢哪种方式呢? 今天就把常见的跟大家唠叨唠叨。——年纪大了,就这一爱好(平时也喜欢说胡话),别闲我烦! 直接初始化法 优点: 1、userData本身就是对象实例。——上来就实例化一个类出来,也不怕浏览器受不了。 2、代码紧凑。 3、编程效率高。 缺点: 1、代码的重用性比较差。 2、不符合面向对象的编程思路。——设计模式这种玩意,经常是在类上,弄来弄去。这种直接在对象上使用,够呛! 总结:应避免使用该方法创建自定义对象。 使用案例: QQ迷你弹窗 构造函数法 使用方法:需要使用“new 和 ...
阅读全文