JS高级(1)面向对象与面向过程

1.面向对象与面向过程

1.1.面向过程(性能高)
分析出解决问题的步骤,然后用函数把这些步骤一步步实现
1.2.面向对象(易维护,易复用,易扩展),封装,继承,多态
把事情分解成为对象,然后由对象之间分工与合作

2.对象与类

2.1.对象
-- 对象是由属性和方法组成的,是一组无序的键值对的集合,指一个具体的事物:
	-- 属性:事物的特征,在对象中用属性来表示
	-- 方法:事物的行为,在对象中用方法来表示
2.2.类
ES6中新增了类的概念,可以使用class关键字生命一个类,之后以这个类来实例化对象,类抽象了对象的公共部分,
它泛指某一大类(class)对象特指一个,通过类实例化一个具体的对象。
2.2.1.创建类
1.步骤1:使用class关键字
	class name {
		// class body
	}
2.步骤2:使用定义的类创建实例,注意new关键字
	var xx = new name()
	举个🌰:
		class Star{
			constructor(name,age){ //类的共有属性放到constructor里面
				this.name = name;
				this.age = age;
			}
		}
		var Dw = new Star('Dw',18)
		console.log(Dw)
2.2.2.类的继承
class Father {}
// 子类继承父类
class Son extends Father{}
注意:
	1.继承中,若果实例化的子类输出一个方法,先看子类,有没有这个方法,如果有就先执行子类的。
	2.子类没有,就去查找父类有没有这个方法,如果有,就执行父类的
	3.子类想要继承父类的方法,同时在自己内部扩展自己的方法,利用super,调用父类的构造函数,super必须在子类this之前调用
举个🌰:
	class Son extends Father{
		Constructor(x,y){
			super(x,y){ 	//利用super调用父类的构造函数
				this.x=x
				this.y=y
			}
		}
	}
	4.时刻注意this的指向问题,所以必须是先定义类,之后通过类实例化,类的共有属性和方法一定要加this使用
	(1)Constructor中的this指向的是new出来的实力对象
	(2)自定义的方法,一般也指向new出来的实力对象
	(3)绑定事件之后this指向的就是触发事件的事件源
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章