---->什么是类和对象
这是所有面向对象编程之前必须弄明白的.
所谓类:简单地说就是模板,说的专业一些,是一类具有某种性质的物的集合.比如:人就是一个类,车也是一个类,等等.
所谓对象:就是类的具体实现.如上面所说,人是一个类,一个具体的人就是一个对象,比如张三.
对象是类的实例化后的结果.javascript中使用new关键字来实例化一个类,生成一个对象.
例子:
function people(){ //javascript中一个function也是一个类,这里我们建立一个空的类people
}
var zhangsan=new people; //实例化生成一个对象张三
---->一个具体形象的例子
/*-->最简单的类:
*people类
* 属性:性别,年龄,姓名
* 方法:说话
*/
function people(name,sex,age){
this.name=name;
this.sex=sex;
this.age=age;
this.say=function(){
return "我叫"+this.name;
}
}
使用时:
var zhangsan=new people;
alert(zhangsan.say());
var lisi=new people;
alert(lizi.say());
说明:
上面使用了this关键字,this总是指向当前的对象,在上面例子中,zhangsan.say中具有this.name,这里的this是当前的对象zhangsan.后面lisi.say则是指向当前对象lisi
对象具有属性,上面的name,sex和age就是对象的属性.我们这样可以访问,如lisi.name,zhangsan.age
对象还具有方法,比如上面的say.方法是通过构造函数实现的.使用时,如上面,用lisi.say(),zhangsan.say()
当然我们还可以在实例化对象后为对象添加新的属性和方法.比如:
zhangsan.girlfriend="小丽";
zhangsan.doing=function(){
return "I am eating";
}
---->javascript类/对象和其他面向对象语言的异同
相同点:面向对象编程的思想都是一样的,世界上所有的具体事物都可以看成对象,而这些事物从属的集合都可以看成类.我们要做的是构造我们需要的类,在实例化成我们需要的对象为我们工作.
不同点:其他面向对象编程的语言对于类/对象关心下面的事情:
1.作用域:公用,私用,受保护,静态.而javascript只有