您的位置:首页 > Web前端 > JavaScript

JavaScript中的面向对象编程

2012-02-24 13:12 176 查看
C++/C/Java面向对象的语言---面向对象编程有三个概念:封装、继承和多态

JavaScript不是面向对象的语言,不支持面向对象,无定义类关键字class,而是用function来定义一个类

1、创建对象的第一种方式

第一种:

//定义一个类,用的是function,而不是class

function Class1(){

//定义两个属性

this.x=1; //公有成员

var y=345; //私有成员

//定义一个方法

this.fangfa=function(){

alert("x="+this.x);

alert("y="+y);

}

}

//实例化对象 分配内存空间

var cl=new Class1();

//访问对象属性的时候可以使用"[]",也可以使用“.”

//alert(cl.x);

///alert(cl["x"]);

//怎样访问对象方法?

alert(cl.fangfa());

-------------------------

第二种: 使用object的方式想对象中添加属性和方法

//通过 new object() 可得到空白对象,进行设值

//var obj=new Object();

//定义空白类 自定义一个类

function Test(){

}

var obj=new Test();

//定义属性

obj.name="顿雅男";

obj.age="145";

alert(obj.name);

//定义方法

obj.fangfa=function(){

alert(this.age);

}

alert(obj.fangfa());

------------------------

第三种: 使用prototype的方式想对象中添加属性和方法

1)创建类,比如类名:Test

2)用“类名.prototype"定义新的属性或者方法

例如:

//定义一个空白的类

function Testpro(){};

//通过prototype向类中添加属性

Testpro.prototype.name="顿雅男";

//通过prototype向类中添加方法

Testpro.prototype.show=function(){

alert(this.name);

}

//实例化

var tp=new Testpro();

alert(tp.name);

2、定义公有属性和私有属性

this.x=1; this. 定义的是公有属性

var y=23; var 定义的是私有属性

3、定义公有方法和私有方法

this. 定义的是公有方法

var 定义的是私有方法

4、虚拟构造函数

//自己虚拟一个构造方法

function Test(a,b){

var x;

var y;

//定义一个公有函数

this.init=function(){

x=a;

y=b;

alert("Test已经被初始化,执行虚拟构造函数");

alert(a+"#####"+b);

}

//调用自身的init方法

this.init();

//用公有方法访问私有属性

this.getx=function(){

alert(x);

}

this.gety=function(){

alert(y);

}

}

//实例化对象

var obj=new Test(3,4);

obj.getx(); //不用使用 alert

obj.gety();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: