JavaScript----面向对象的个人理解

		JavaScript的 编程思想
			1.面向过程(pop) -----> 按照步骤一步一步进行
			2.面向对象(oop)------> 以对象功能来划分
		面向对象的特性
			1.封装性 ---> 代码封装 直接使用
			2.继承性 ---> 继承父类方法
			3.多态性--->不同的环境展示不同的状态
		优缺点
 			面向过程 :
 				优点: 性能比面向对象高
 				缺点: 没有面向对象易维护,易复用,易扩展
		 面向对象 :
		 		优点: 易维护,易复用,易扩展
		 		缺点: 性能比面向过程低
		 		
		总结:萝卜青菜各有所爱,没有好坏,只有合适;

废话终于说完了......

对象和类是什么?
对象 : 万物皆对象;
	对象是由属性和方法组成的
	
类  : 描述对象特征的集合
	把对象的属性和方法拿出来组成一个类
	类中有一个函数 constructor 构造函数,
	用于传递参数,返回实例对象 new实例化的时候会自动调用

对象是由实例化类生成的,类是对象的属性和方法抽象出来的

//创建类
	class Man{
		constructor(name){
			this.name = name
		}
	}
	//创建对象
	var rbx = new Man('bob')
	运行流程:
	//1.new Man()的时候 调用 constructor方法,把bob传给构造函数
	//2.this 指向实例化的对象 this 指向 rbx
	//3.this.name=name 等于 rbx.name = bob
继承 extends

通俗一点就是子女继承父亲的姓氏

	//1创建一个父亲
	class Father{
		constructor(){	
		//var son = new Son() 实例化没有传值 就空着就可以
	}
	Surname(name){
		console.log(`你爸爸姓${name}`)	
	}
}
	//儿子继承父亲的姓氏
	class Son extends Father{
	
	}
	var son = new Son()
	//因为儿子继承了父亲所有的东西
	//儿子也可以调用父亲里面的方法
	son.Surname('任')
	class Father{
		sum(){
			return '我是爸爸'
		}
	}
	class Son extends Father{
		sum(){
			console.log(super.sum()'的儿子')
		}
	}

super()可以调用父类的中的函数,指向的是父类

注意
1继承中输出 属性或者方法 执行就近原则
如果实例化子类,先看子类中有没有这个方法,如果没有再去父类查找
一般class声明的类都大写

如果在constructor使用super()必须放到this前面

class Father{
	constructor(x,y){
		this.x = x;
		this.y = y;
	}
	sun1(){
		console.log(this.x+this.y)
	}
}
class Son extends Father{
	constructor(x,y){
		super(x,y) //规定使用super()应该放到this前面 这里的x,y 是父类的构造函数的x,y
		this.x = x;
		this.y = y
	}
	sun(){
		console.log(this.x-this.y)
	}
}
var son = new Son(5,3)
son.sun1() //8
son.sun()  //2

总结:
1.在ES6中 类没有变量提升, 所有必须先定义类 ,才能通过类实例化对象
2.类 里面的属性和方法 一定要加this使用
3.constructor 里面的this 指向创建的实例对象
4.函数里的this 指向 这个函数的调用者

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值