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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值