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();
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();
相关文章推荐
- JavaScript面向对象编程
- Javascript 面向对象编程(一):封装
- javascript面向对象编程
- JavaScript面向对象编程
- Javascript 面向对象编程
- Javascript面向对象编程(二):构造函数的继承
- Javascript 面向对象编程
- Javascript面向对象编程(二):构造函数的继承
- JavaScript面向对象编程代码介绍
- Javascript 面向对象编程(一):封装
- JavaScript面向对象编程(二)构造函数和类
- Javascript 面向对象编程(一):封装
- Javascript 面向对象编程(一):封装
- 在JavaScript面向对象编程中使用继承(3)javascript
- JavaScript面向对象编程(1)简单对象
- JavaScript面向对象编程
- 深入理解Javascript面向对象编程
- JavaScript 面向对象编程
- javascript 面向对象编程基础:封装
- 高手教你15分钟掌握JavaScript面向对象编程