0
点赞
收藏
分享

微信扫一扫

JavaScript 面向对象详解


面向对象:


js面向对象特征介绍:

javascript是一种面向(基于)对象的动态脚本语言,是一种基于对象(Object)和事件驱动(EventDriven)并具有安全性能的脚本语言。他具有面向对象语言所特有的各种特性,比如封装、继承及多态等。

封装:比较简单,javascript只有私有和公有这两个封装方式

继承:不是通过关键字extends,而是通过对象冒充的方式来达到继承的效果

多态:javascript是天生的多态,它本身就无态,无态就是多态的一种体现,无招胜有招。


①javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。

特别说明:基于对象也好,面向对象也好实际上都是一对象的概念来编写程序,从本质上并无区别。

②因为javascript中没有class(类),所以有人把类也称为原型对象,因为这两个概念从在编程中发挥的作用看都是一个意思,为了统一叫法,我们这里就统一叫类。


澄清概念

js中 基于对象 == js 面向对象


js 中没有类class,但是它取了一个新的名字叫 原型对象,因此 类==原型对象

js面向对象实例:

<html>
<head>
<script language="javascript">
//解决方法,把猫的属性集中起来,创建一种新的数据类型(原型对象/类)
//用面向对象的方法来解决问题
//没有class,怎么定义原型对象或者类呢,用function

//这里就是定义一个Cat类。是一个类还是函数,主要看你怎么去用它
function Cat(){
}
//如果你这样用,很神奇,主要看你怎样用
// Cat();//就是函数
// var cat1=new Cat();//这就是类
//这时Cat1就是一个对象(实例)
//属性怎么给,javascript比较松散,可以动态的添加属性

var cat1=new Cat();

cat1.name="小白";
cat1.age=3;
cat1.color="白色";
//从上面的代码我们可以看出
//1.js中的对象的属性可以动态的添加
//2.属性没有限制
window.alert(cat1.name); //打印输出小白
//没有定义的会报undefined
window.alert(cat1.hobby);
</script>
</head>
<body></body>
</html>

对象—特别说明:
在js中一切都是对象

function Person(){
}
var a=new Person();
window.alert(a.constructor);//a对象实例的构造函数
window.alert(typeof a);//a的类型是什么
var b="1234";
window.alert(b.constructor);//b对象实例的构造函数
window.alert(typeof b);//b的类型是什么

包括Person都是对象
window.alert(Person.constructor);//Person的构造函数
//再次说明了js中一切都是对象


思考:如何判断一个对象实例是不是Person类型?
if(a instanceof Person){
//如果啊这个实例就是Person这种类型,就会返回一个真,否则返回假
window.alert("a是person");
}


或者
if(a.constructor==Person){
//a对象实例的构造函数就是Person
window.alert("a是Person");
}


创建对象实例:

var 对象名=new 类名/原型对象名();



访问(使用)对象实例的成员变量:

(1)对象实例名.属性名;


(2)对象实例名["属性名"];


删除对象:

主动删除:delete a.age;直接把age属性删掉。
delete直接删除掉某个对象的属性
delete 对象名.属性  //这样就会立即释放 对象的这个属性空间,在访问就不存在了




举报

相关推荐

0 条评论