js面向对象编程(一看就懂)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JavaScript面向对象(一看就懂)
1、对象描述
如果有个人,他叫周杰伦,性别是男,他还有一个变化的年龄,我们该怎么用面向对象的方式来表述呢?
第一、我们先给他起一个对象名叫zjl。
第二、我们给这个对象两个属性,一个属性叫name,它的值为"周杰伦",另一个属性叫gender,它的值为"male"。
第三、我们给这个对象一个方法,叫setAge,它可以给zjl这个对象设置年龄,它有一个形参age,用于接收代表实际年龄的实参。
2、第一种创建对象的方法
让我们先来看一下创建对象的第一种方法,格式为如下所示。注意属性和属性值之间要有英文的冒号,各个属性以及函数之间要用英文的逗号隔开,对象末尾的属性值或函数后没有逗号。
注意这里面的this关键字,代表zjl这个对象,this.curage=age也就是把形参的值赋给zjl这个对象的curage属性,你当然也可以用同样的方法给属性name和gender赋值,赋值后name和gender的初始值就会被覆盖掉。现在想一想如果curage不加前面this.呢?还记得我们前面讲过的全局变量吗?没错,这样curage就不是对象zjl的属性,而是一个全局变量了,那如果我们写成var curage呢,这是它只是setAge函数里面的一个局部变量,也不再是对象zjl的属性了。加了this关键字的方法和属性叫做公有方法和属性,不管在对象内部还是外部都可以访问。所以当我们在对象内部要引用公有方法和属性时,一定记得要加his 关键字。
/*var对象名={
属性名1:属性值,
属性名2:属性值,
......
函数名1:function(形参......)
{函数体1},
函数名2:function(形参......)
{函数体2},
......
};*/
var zjl={
name:"周杰伦",
gender:"male",
setAge:function(age){
this.curage=age;
}
};
3、第二种创建对象的方法
第二种创建对象的格式为:
var对象名=new Object();
对象名.属性名1=属性值1;
......
对象名.函数名1=function(形参......)
{函数体1};
......*/
var zjl=new Object();
="周杰伦";
zjl.gender="male";
zjl.setAge=function(age){
this.curage=age;
};
4、第三种创建对象的方法
详见小鸟悠悠一步步教你编程,让写代码不再枯燥,充满乐趣。