<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<!-- 什么是前端开发JavaScript面向对象编程?
在js中没有类的概念的,是直接使用对象来实现编程的
面向过程编程:每件事的具体过程都要知道,注重过程。
面向对象编程:根据需求找对象,所有的事情都用对象来做,注重结构
面向对象棉城:封装,继承,多态(抽象性)
js是一种基于对象的语言,不是一种面向对象语言,但是可以模拟面向对象编程思想
万物皆对象:现实生活中客观存在的任何事物都是可以看做对象
对象:用描述客观事物的一个实体,由事物的特征(属性)和行为(方法(函数))构成
封装:把一个事物包装起来,尽可能的隐藏细节
类:类是它的全部对象的一个统一定义,而它的每一个对象就是这一定义的一个实体
即:类和对象的关系,是抽象和具体的关系
属性:对象所拥有的的静态特征,在类的表示时可以称为类的属性。“有”什么东西
方法:对象执行的操作称为类的方法,事物的行为。“能做什么”
对象:是类的实例,是真实存在的(就是占内存的)
例如:跑车:属性:发动机,方向盘。方法:发动,加速,刹车
对象:具体到时兰博基尼,保时捷,还是野马
object类型是js中一种原始数据类型
object是一种复杂类型,引用数据类型。
如何创建对象:
1:利用构造函数创建对象:
var obj=new 函数名();
注意:这种构造函数创建方法,问题在于每次实例都会把所有的对象的属性都创建一遍,如果是数值属性还好。如果每个函数的方法在每次实例化都创建一遍,是不合理的(不符合面向对象原则
)
构造函数和函数的区别:构造函数的名字一般是首字母大写
自定义构造函数做了4件事:
1:new的时候,在内存中开辟了一块空间,存储新对象
2:把this设置新对象
3:设置对象的属性和方法
4:把this对象返回
例如: -->
<script>
function Person(){
this.name="Li";//this是指向当前实例化的对象当中的一个属性 (name)
this.age=28;
var worker="coder";
this.ShowMe=function(){//方法
console.log("my name is "+this.name);
}
console.log("创建了一个person对象");
}
var person=new Person();//实例化一个person对象
person.ShowMe();
</script>
<!-- 第二种 使用构造器创建对象 -->
<script>
//Object构造器创建对象
var obj=new Object();//关键字Object,首写大写 边写边添加
onj.name="Li";
obj.age=28;
obj.sex="男";
obj.ShowMe=function(){
console.log("my name is "+this.name);
};
obj.ShowMe();
</script>
<!-- 第三种 字面量创建对象
将成员信息写在{},并赋值给一个变量,此时这个变量就是一个对象
-->
<script>
var person={
name:"Li",
age:28,
ShowMe:function(){
console.log("my name is "+this.name);
}
};
console.log(person.name);
person.ShowMe();
</script>
</body>
</html>