js面向对象和ES6新增类class
1.面向过程和面向对象
**面向过程:**面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。
**面向对象:**面向对象是把事务分解成为一个个对象,然后由对象之间分工与合作。
面向过程 | 面向对象 | |
---|---|---|
优点 | 性能比面向对象高,适合跟硬件联系很紧密的东西,例如单片机就采用的面向过程编程。 | 易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护 |
缺点 | 不易维护、不易复用、不易扩展 | 性能比面向过程低 |
2.对象
对象是由属性和方法组成的,是一个无需键值对的集合,指的是一个具体的事物;
属性:事物特征,在对象中用属性来表示;
方法:事物的行为,在对象中用方法表示;
3.类
在ES6中新增了类的概念,可以使用class关键字声明一个类,之后以这个类来实例化对象,类抽象了对象的公共部分,它泛指某一大类class对象特指某一个,用过实例化一个具体的对象;
3.1创建类
//使用class关键字
class Animal {
constructor(name,age) { // constructor 构造器或者构造函数
this.name = name;
this.age = age;
}
}
new Animal(name,age);
3.2类创建添加属性和方法
//使用class关键字
class Animal {
constructor(name,age) { // constructor 构造器或者构造函数
this.name = name;
this.age = age;
}
bark(){
console.log('旺旺旺');
}
}
//使用定义的类创建实例 注意new关键字
var dog = new Animal('dog',5);
dog.bark();