什么是面向对象?
面向对象是一种重要的程序设计思想,即将预处理的问题抽象成一个个对象来解决实际问题.
面向对象三大特性:
-
封装 (核心) : 将对象的属性和方法封装起来,其载体是一个对象或类. 封装后通常隐藏了内部实现细节,只需使用其接口(方法)就行了
-
继承 : 类之间的层级关系,子类可以继承父类的全部属性方法,同时子类可以扩展父类没有的
-
多态 : 同一个方法在不同的对象中的执行的结果不相同(一个接口,多个方法)
类与对象的关系
类: 是具有相同属性和方法的对象的集合 (类是对象的模板)
对象: 任何客观的事物或实体都是对象,对象是属性和方法的集合 (对象则是类的一个实例)
在JavaScript
中有
- 任何客观的事物或实体都是对象(对象是属性和方法的集合)
- 类是
ES6
正式引入的,之前需要通过构造函数和原型对象实现面向对象编程 - js 中的所有事物都是对象:如数字、字符串、数组 等。
- js对象是变量、方法和属性的容器(对象也是变量)
创建一个对象并赋值,访问属性和方法(当函数赋值给对象的属性, 称为"方法")
//一个值
var people = {
name:"zhangsan" };
//多个值以键值对形式,逗号分隔
var people = {
name:"zhangsan",
age:18,
sex:"男",
fun : function(){
console.log(this.name); //这里的this指向的是people这个对象
}//fun就成了该对象的一个方法
};
//.或[]方式访问属性
people.name或people['name']
//obj.属性() 方式访问对象方法
people.fun(); //zhangsan