摘要: <<JavaScript语言精髓与编程实践>>非常基础又深入介绍了javascript, 推荐去看看我这里主要讨论javascript对向对象编程;一.对原型支持定义方法:// 方法1//在构造器中写this实例引用//使用构造器创建对象实例”function MyObject_1() { this.<propertyName1> = …; this.<propertyName2> = …; }// 方法2//在构造器中直接返回对象实例//使用构造器创建对象实例”) function MyObject_2() { var data = this; 阅读全文
posted @ 2013-01-27 18:09 winpzs 阅读(475) 评论(0) 推荐(0) 编辑
摘要: 一. Javascript 面向对象编程:封装Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。那么,如果我们要把"属性"(property)和"方法"(method),封装成一个对象,甚至要从原型对象生成一个实例对象,我们应该怎么做呢?1. 生成对象的原始模式假定我们把猫看成一个对象,它有"名字"和"颜色"两个属性。var Cat = {name : '',co 阅读全文
posted @ 2013-01-27 17:28 winpzs 阅读(526) 评论(1) 推荐(2) 编辑
摘要: 作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理。今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望能帮助大家更好的学习JavaScript。JavaScript作用域任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在JavaScript中,变量的作用域有全局作用域和局部作用域两种。 1. 全局作用域(Global Scope) 在代码中任何地方都能访问到的对象拥有全局作用域,一般来说以下几种情形拥有全局作用域: (... 阅读全文
posted @ 2013-01-27 17:16 winpzs 阅读(429) 评论(1) 推荐(0) 编辑
摘要: 最近在网上查阅了不少Javascript闭包(closure)相关的资料,写的大多是非常的学术和专业。对于初学者来说别说理解闭包了,就连文字叙述都很难看懂。撰写此文的目的就是用最通俗的文字揭开Javascript闭包的真实面目。什么是闭包?“官方”的解释是:闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。相信很少有人能直接看懂这句话,因为他描述的太学术。其实这句话通俗的来说就是:JavaScript中所有的function都是一个闭包。不过一般来说,嵌套的function所产生的闭包更为强大,也是大部分时候我们所谓的“闭包”。看下面这段 阅读全文
posted @ 2013-01-27 17:03 winpzs 阅读(417) 评论(3) 推荐(1) 编辑
摘要: Web开发的发展在过去一些的时候,Web开发人员并没有太多的去关注内存泄露问题。那时的页面间联系大都比较简单,并主要使用不同的连接地址在同一个站点中导航,这样的设计方式是非常有利于浏览器释放资源的。即使Web页面运行中真的出现了资源泄漏,那它的影响也是非常有限而且常常是不会被人在意的。今天人们对Web应用有了高更的要求。一个页面很可能数小时不会发生URL跳转,并同时通过Web服务动态的更新页面内容。复杂的事件关联设计、基于对象的JScript和DHTML技术的广泛采用,使得代码的能力达到了其承受的极限。在这样的情况和改变下,弄清楚内存泄露方式变得非常的急迫,特别是过去这些问题都被传统的页面导航 阅读全文
posted @ 2013-01-27 16:40 winpzs 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。下面就是我的学习笔记,对于Javascript初学者应该是很有用的。一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。var n = 999;function f1() { alert(n); }f1(); // 999另一方面,在函数外部自然无法读取函数内的局部变量。function f1(){ var n=999; }alert(n); // 阅读全文
posted @ 2013-01-27 16:33 winpzs 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 这两天看了js的一些有关内存管理和垃圾回收的知识,现在来总结一下。垃圾回收:javascript具有垃圾回收的机制,也就是说,执行环境会负责管理代码执行过程中使用的内存。其余的不多说,我们来分析一下函数中局部变量的正常生命周期。局部变量只在函数执行过程中存在。而在这个过程中,会为局部变量在栈(或堆)内存上分配相应的空间,以便存储他们的值。然后在函数中使用这些变量,直到函数结束。此时,局部变量就没有存在的必要了,因此可以释放他们所占的内存以供他们使用。现在各大浏览器通常用采用的垃圾回收有两种方法:标记清除、引用计数。下面来了解了解。标记清除:这是javascript中最常用的垃圾回收方式。当变量 阅读全文
posted @ 2013-01-27 16:28 winpzs 阅读(732) 评论(0) 推荐(0) 编辑
摘要: 严格模式(Strict Mode)是ECMAScript5新增的功能。ECMAScript5虽然可以向后兼容ECMAScript3,但如果使用严格模式,哪些ECMAScript5“不在建议使用”的ECMAScript3语法功能将会被全部进制,如果出现就会抛出一行。引入Strict Mode目的是允许开发人员能够选择“更好”的Javascript版本,这个版本能用不同的方式处理那些普遍而又臭名昭著的错误。目前所有的主流浏览器的最新版本——包括IE10与Opera12——都支持严格模式。关于严格模式的大多数信息都可以在《ES5规范》[PDF]的第223页找到。 如何启用严格模式可以在全局范围内使用 阅读全文
posted @ 2013-01-27 16:18 winpzs 阅读(351) 评论(0) 推荐(0) 编辑