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

Javascript 中面向对象的思想

2013-12-10 17:16 218 查看
1 js中一个函数就是一个类,可以将它理解为类的构造函数,负责初始化工作。

2 可以通过new的操作符获得一个类的实例。

例如:

//定义一个hello函数

function hello(){

alert("hello");

}

//通过new一个函数获得一个对象

var obj=new hello();

alert(typeof(obj));

3 对象的属性和方法

其他语言中,对象一旦生成,就不可更改,要为一个对象添加、修改成员必须要在对应的类中修改,并重新实例化,程序也必须重新编译。JavaScript提供了灵活的机制来修改对象的行为,可以动态添加、修改、删除属性和方法。例如:先用类Object来创建一个空对象user:

var user=new Object();

(1) 获取属性或方法

a) 对象名.属性(方法)名

b) 对象名["属性(方法)名"]

(2) 添加属性

a) 添加属性:

user.name="jack";

user.age=21;

user.sex="male";

b) 添加方法

user.alert=function(){

alert("myname is:"+this.name);

}

(3) 修改属性和方法

修改一个属性和方法的过程就是用新的属性替换旧的属性,例如:

user.name="tom";

user.alert=function(){

alert("hello,"+this.name);

}

(4) 删除属性和方法

删除一个属性和方法的过程也很简单,就是将其置为undefined:

user.name=undefined;

user.alert=undefined;

这样就删除了name属性和alert方法。

4 无类型对象

传统的面向对象语言中,每个对象都会对应到一个类。上一节讲this指针时提到,JavaScript中的对象其实就是属性(方法)的一个集合,并没有严格意义上类的概念。所以它提供了一种简单的方式来创建对象,即大括号({})语法:

{

property1:statement,

property2:statement2,

…,

propertyN:statmentN

}

通过大括号括住多个属性或方法及其定义(这些属性或方法用逗号隔开),来实现对象的定义,这段代码就直接定义个了具有n个属性或方法的对象,其中属性名和其定义之间用冒号(:)隔开。

5 prototype原型对象

prototype 对象是实现面向对象的一个重要机制。每个函数(function)其实也是一个对象,它们对应的类是“Function”,但它们身份特殊,每个函数对象都具有一个子对象prototype。即prototype表示了该函数的原型,而函数也是类,prototype就是表示了一个类的成员的集合。当通过 new来获取一个类的对象时,prototype对象的成员都会成为实例化对象的成员。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: