Javascript面向对象编程之二:类的定义
2014-12-09 09:36
253 查看
在javascript中,可以按照以下三种方式定义一个类,这三种方法也是阮一峰推荐的。
1、构造函数法
function Cat() { this.name = "大毛"; }
这里面,this指的是实例对象。
生成实例时,使用new关键字:
var kitty=new Cat(); alert(kitty.name);
javascript对象都可以通过prototype拓展对象的属性和方法:
Cat.prototype.makeSound = function(){ alert("喵喵喵"); }
我比较倾向于使用这种方法,在上一篇中定义类时用的也是这个方法。
2、Object.create()法
用这个方法,”类”就是一个对象,不是函数。var Cat = { name: "大毛", makeSound: function(){ alert("喵喵喵"); } };
然后,直接用Object.create()生成实例,不需要用到new。
这种方法比”构造函数法”简单,但是不能实现私有属性和私有方法,实例对象之间也不能共享数据,对”类”的模拟不够全面。
3、极简主义法
荷兰程序员Gabor de Mooij提出了一种比Object.create()更好的新方法,他称这种方法为”极简主义法”(minimalist approach)。我在第一次定义javascript类时,使用的就是这种方法。它的好处需要你对比三种方法后才能感觉到。var Cat = { createNew: function(){ var cat = {}; cat.name = "大毛"; cat.makeSound = function(){ alert("喵喵喵"); }; return cat; } };
然后,在createNew()里面,定义一个实例对象,把这个实例对象作为返回值。
这种方法的好处是,容易理解,结构清晰优雅,符合传统的”面向对象编程”的构造,因此可以方便地部署下面的特性。
相关文章推荐
- [JavaScript]类之二---javascript 类定义4种方法
- JavaScript面向对象编程(2)-- 类的定义
- JavaScript面向对象编程(2)-- 类的定义
- javascript面向对象编程实现[定义(静态)属性方法--继承]
- JavaScript面向对象编程:类定义、继承、接口实现
- JavaScript面向对象编程(2)-- 类的定义
- Javascript面向对象编程,定义类(class)的三种方法
- JavaScript面向对象编程(2)-- 类的定义
- JavaScript面向对象编程(2)-- 类的定义
- JavaScript面向对象编程(2)-- 类的定义
- [转]JavaScript面向对象编程(2)-- 类的定义
- Javascript面向对象编程之三:变量的定义
- Javascript 的面向对象编程——类及变量的定义部分
- javascript面向对象编程实现[定义(静态)属性方法--继承]
- Javascript 面向对象编程之二
- 在JavaScript面向对象编程中使用继承(2)
- JavaScript 面向对象编程
- 用Javascript和XML创建可自由定义的菜单
- 在JavaScript面向对象编程中使用继承(3)
- 初学AJAX遇到的的问题:使用javascript代码调用服务端代码时提示'WebForm1'未定义