浅谈一下js中的继承==上篇

在讲解继承之前 我们先来谈谈js中面向对象的概念
在面试的时候也经常会碰见这样的问题.
我们先来阐述一下大概概念,
面向对象是对现实世界的一个延伸,将一个功能抽象成一个对象,他的行为和特征即为对象的方法和属性。就像我们常说的 “万物皆对象”;
我们每一个个体就相当于是一个人的对象的实例。
关于封装的概念,将一个对象独有的属性和方法 封装到一个对象了里面 这样做 既是保证了 数据的私密性又保证代码的可重用性,
而继承 则是对代码重用性进一步提高了 ,子类继承了父类的方法和属性 同时又有自己独特的属性 。
在js中并没有 多态的这个概念,而仅仅的多态也只是用通过函数传入参数的多少 而模拟出来的效果。
我们学过其他的面向对象编程语言的童鞋可能知道 ,多态往往是和接口联系在一起的。
对面向对象的理解:
初级程序员:面试说出面向对象的概念,什么是封装继承和多态。
中级程序员:面向对象提高代码的可重用性,高耦合低内聚
高级程序员:直接从项目中说面向对象的优点和缺点
想要在js中尝试接口的感觉 可以尝试去学习下ts语言,毕竟它是js的一个超集,帮我们扩展了 js。
好了废话不多说了,好像有点跑题,我们今天来讲的似乎js中的继承问题.不说es的 class语法糖的继承哦
1.好了步入正题了
我们一步一步敲着代码走起
先说下类式继承

// 类式继承
		function SuperClass(){
			this.superValue=true;
		}
		//为父类添加共有的方法
		SuperClass.prototype.getSuperValue=function(){
			return this.superValue;
		}
		//声明子类
		function SubClass(){
			this.subValue=false;
		}
		//继承父类
		SubClass.prototype=new SuperClass();
		//为子类添加共有的方法
		SubClass.prototype.getSubValue=function(){
			return this.subValue;
		}
		var child=new SubClass();
		console.log(child.subValue,child.superValue)
           false true // 最后在控制台输出这俩个

可以看到子类的实例确实能调用父类中的属性 当然方法也照样可以的
其实上面的继承还是有点问题,稍后我会指出的。。。。。。。
生活那么苦,那就笑着去面对,记得给自己吃颗糖!!!

发布了236 篇原创文章 · 获赞 80 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/yunchong_zhao/article/details/104973656