面向对象:
1、对象:引用类型
意义:专门描述现实生活中,一个具体事物的属性和功能的程序结构,事物的属性会成为对象的属性,事物的功能,会成为对象的方法。
本质:内存当中同时存储多个数据和方法的一块存储空间。
面向对象:思想
三大特点:封装、继承、多态
将来在程序中,都是先用一个对象来封装一个事物的属性和功能,然后在调用对象的方法,来执行任务
2、如何使用:
函数:不属于任何一个对象才叫函数
方法:如果将一个函数放到对象中
创建对象:三种方法两个场景
1、创建一个单独的对象
a、使用对象直接量
var obj = {
"属性名":属性值,
...:...,
"方法名":function(){}
};
何时使用:如果创建对象时已经非常清楚对象中的所有属性和方法,就用直接量
b、使用new关键字创建
var obj = new Object();//创建一个空对象
= {};
obj["属性名"] = 属性值;
obj.方法名 = function(){};
在js中可以认为一切对象皆关联数组,可以遍历,用for in循环
相同:
1、属性名都是字符串,不可重复
2、随时添加新的属性和方法
3、都可以使用for in遍历
何时使用:可能在创建对象的时候暂时不知道有哪些属性和方法需要后续补充。
批量创建多个相同结构的对象:
1、定义构造函数
构造函数:专门定义一类对象相同结构的特殊函数
如何使用:只要反复创建多个相同结构的对象前,都要先定义构造函数,统一结构。
如何定义:
function 类型名/构造函数名(属性值参数,...){
this.属性名 = 属性值参数;
this.方法名 = function(){
}
};
this指向当前正在创建的空对象;
为什么:代码重用
2、使用new关键字创建新对象;
var obj = new 构造函数名(属性值);
new干了几件事:四件事
1、创建了一个空对象
2:?
3、用新对象调用构造函数,向新对象中添加属性和方法
4、将对象地址返回给obj
调用对象的属性:
对象.属性名;
对象的属性使用方法与变量的使用方法一致
调用对象的方法:
对象.方法(参数值);
对象的方法也可以单独作为一个函数用
问题1:对象的方法中,不能写死对象的属性值,
解决:在对象的方法中,直接访问当前对象自己的属性
使用this关键字:this专门用来在对象方法中引用或指代正在调用方法的当前对象本身
总结:只要在对象的方法中访问对象自己的属性,必须使用this.属性名
示例: