基于对象编程和面向对象编程叫法区分
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
◆基于对象编程和面向对象编程叫法区分
js 中我们可以认为这个叫法一致.
◆js的面对对象编程的介绍
js是一种支持面向对象编程的脚本语句, 它有继承,封装,多态的特点. 课程中基于对象= =面向对象类==原型对象
◆面向对象编程的引入
一个问题?
张老太养了两只猫猫:一只名字叫小白,今年3岁,白色。
还有一只叫小花,今年10岁,花色。请编写一个程序,
当用户输入小猫的名字时,就显示该猫的名字,年龄,
颜色。如果用户输入的小猫名错误,则显示张老太没
有这只猫猫。
我们的一个解决方法是:(js面向对象编程的快速入门)
//定义了一个猫类
function Cat(){
}
//创建一只猫[js对象的属性可以动态增加]
var cat1=new Cat(); //cat1就是一个对象实例
="小白"; //
cat1.age=3;
cat1.color="白色"
document.write(+"--"+cat1.age+"--"+cat1.color);
//特别说明
// var cat1=new Cat(); //当做类(原型对象使用)
// Cat(); //当做函数
对象公开属性的访问方式有
对象名.属性名;
对象名[’属性名’];
◆js中自定义类(原型对象)的五种方法
1.工厂方法
var obj=new Object();
obj.属性=”aa”;
obj.show=function (){
};
2.通过构造函数来定义类(最多)
function 类名/函数名(){
}
var p=new 类名/函数名(); //
函数名();
3.通过prototype 来定义
动态的添加方法和属性.
4.构造函数和prototype混合
5.动态创建对象模式
◆js中一起都是对象
基本对象/系统内置对象(Number,String,Boolean..) var i=0;
window.alert(i.constructor);
function Person(){
}
var p1=new Person();
window.alert(p1.constructor);
window.alert(Person.constructor);
window.alert(Function.constructor);
可用通过instanceof 来判断某个对象实例是不是某个类的对象实例, 案例:
//如何判断一个对象实例是不是某个类(原型对象)
if(p1 instanceof Dog){
window.alert("p1是Person一个对象实例");
}else{
window.alert("p1是Dog一个对象实例");
}