摘要: 转自:http://developer.51cto.com/art/201105/261407.htm这篇文章是参考<<javascript-the definitive guide,5th edition>>第7,8,9章而写成的,我也会尽量按照原书的结构来说明javascript的面向对象技术(对象/数组->函数-->类/构造函数/原型).对一些我自己也拿捏不准的地方,我会附上原文的英文语句,供大家参考.类、构造函数、原型先来说明一点:在上面的内容中提到,每一个函数都包含了一个prototype属性,这个属性指向了一个prototype对象,注意不要搞混 阅读全文
posted @ 2011-11-08 15:31 贝加 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/snandy/archive/2011/03/07/1972508.html这篇我们看看各个JS库的写类方式,这也是写类系列的最后一篇。1,Prototype的写类方式Prototype中使用Class.create方法,如下01//类名Person 02var Person = Class.create(); 0304//通过原型重写来定义Person 05Person.prototype = { 06initialize : function(name) { 07this.name = name; 08}, 09getName : fun 阅读全文
posted @ 2011-11-08 15:02 贝加 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/snandy/archive/2011/03/07/1973241.html工具函数如下 01/** 02* $class 写类工具函数之三 03* @param {String} className 04* @param {Function} superClass 05* @param {Function} classImp 06*/07function $class(className, superClass, classImp){ 08if(superClass === "") superClass = Object 阅读全文
posted @ 2011-11-08 14:57 贝加 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/snandy/archive/2011/03/06/1972264.html续上篇,构造函数+原型 组装一个类;同一构造函数可以定义出多个类型 01/** 02* $class 写类工具函数之二 03* @param {Function} constructor 04* @param {Object} prototype 05*/06function $class(constructor,prototype) { 07var c = constructor || function(){}; 08var p = prototype || {}; 阅读全文
posted @ 2011-11-08 14:51 贝加 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/snandy/archive/2011/03/06/1972254.html这篇开始会记录一些写类的工具函数,通过上篇我们知道本质上都是 构造函数+原型。理解了它碰到各式各样的写类方式就不惧怕了。构造函数 + 原型 直接组装一个类;同一构造函数将组装出同一类型01/** 02* $class 写类工具函数之一 03* @param {Function} constructor 04* @param {Object} prototype 05*/06function $class(constructor,prototype) { 07var c 阅读全文
posted @ 2011-11-08 14:40 贝加 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/snandy/archive/2011/03/06/1971764.html从这篇起,会由浅到深的分析JS OO之写类方式,大概会有5-8篇。后面陆续会分析流行库(框架)的写类方式。一些写类工具函数或框架的写类方式本质上都是 构造函数+原型。只有理解这一点才能真正明白如何用JavaScript写出面向对象的代码。或者说组织代码的方式使用面向对象方式。当然用JS也可写出函数式的代码,它是多泛型的。为了讨论的单一性,暂不考虑类的继承,(私有,受保护)属性或方法。EMCAScript中实际没有类(class)的概念,但可以把它理解为更广义的概念。1 阅读全文
posted @ 2011-11-08 14:36 贝加 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 转自http://www.mangguo.org/javascript-prototype-constructor-inheritance/上回说到《JavaScript 原型继承之基础机制》,这一篇将具体说说构造函数的继承。从一个简单的示例开始,创建描述人类的 People 构造函数:functionPeople(){ this.race='愚蠢的人类'; }然后,创建描述黄种人的 Yellow 构造函数:functionYellow(name,skin){ this.name=name; this.skin=skin; }要使得黄种人 Yellow 能继承人类 People 阅读全文
posted @ 2011-11-08 13:56 贝加 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://www.mangguo.org/javascript-prototype-inheritance-basic-mechanisms/由于语言设计上的原因,JavaScript 没有真正意义上“类”的概念。而通常使用的 new 命令实例化对象的方法,其实是对原型对象的实例化。这一语言功能的本质依赖于 JavaScript 特有的原型链(prototype chain)模式。所以严格意义上说,JavaScript 是基于原型的面向对象语言。也就是说,每个实例对象都具有一个原型。对象从该原型中继承属性和方法。1、构造函数利用构造函数,可以简单地创建对象。构造函数内的 this 阅读全文
posted @ 2011-11-08 13:52 贝加 阅读(231) 评论(0) 推荐(0) 编辑