首页 > 代码库 > Javascript 面向对象编程

Javascript 面向对象编程

来源:http://coolshell.cn/articles/6441.html

 

 

Javascript是一个类C的语言,他的面向对象的东西相对于C++/Java比较奇怪,但是其的确相当的强大,在 Todd 同学的“对象的消息模型”一文中我们已经可以看到一些端倪了。这两天有个前同事总在问我Javascript面向对象的东西,所以,索性写篇文章让他看去吧,这里这篇文章主要想从一个整体的角度来说明一下Javascript的面向对象的编程。(成文比较仓促,应该有不准确或是有误的地方,请大家批评指正

另,这篇文章主要基于 ECMAScript 5, 旨在介绍新技术。关于兼容性的东西,请看最后一节。

初探

我们知道Javascript中的变量定义基本如下:

var name = ‘Chen Hao‘;;var email = ‘haoel(@)hotmail.com‘;var website = ‘http://coolshell.cn‘;

如果要用对象来写的话,就是下面这个样子:

var chenhao = {    name :‘Chen Hao‘,    email : ‘haoel(@)hotmail.com‘,    website : ‘http://coolshell.cn‘};

于是,我就可以这样访问:

//以成员的方式chenhao.name;chenhao.email;chenhao.website; //以hash map的方式chenhao["name"];chenhao["email"];chenhao["website"];

关于函数,我们知道Javascript的函数是这样的:

var doSomething = function(){   alert(‘Hello World.‘);};

于是,我们可以这么干:

 1 var sayHello = function(){ 2    var hello = "Hello, I‘m "+ this.name 3                 + ", my email is: " + this.email 4                 + ", my website is: " + this.website; 5    alert(hello); 6 }; 7   8 //直接赋值,这里很像C/C++的函数指针 9 chenhao.Hello = sayHello;10  11 chenhao.Hello();

 

Javascript 面向对象编程