对象的含义
在现实中:万物皆对象,对象是一个具体的事物,看得见摸得着的实物,一个数据库,一张网页、一个远程服务器的连接也可以是‘对象’。
在JavaScript 中,对象是一组无序的相关属性和方法的集合,所有实物都是对象,例如:字符串、数值、数组、函数等
属性:事物的特征,在对象中用属性来表示(常用名词)
方法:事物的行为,在对象中用方法来表示(常用动词)
为什么需要对象
保存一个值时,可以使用变量,保存多个值(一组值)时,可以用数组。但是要保存一个人的完整信息呢?
例如:将‘张三’的个人信息保存在数组中的方式为:
var arr = ['张三','男',128,154];
js中 的对象表达结构更清晰,更强大,张三的个人信息在对象中表达结构如下:
张三 . 姓名 = '张三'; person . name = '张三';
张三 . 性别 = '男'; person . sex = '男';
张三 . 年龄 = 23; person . age = 23;
张三 . s身高 = 154; person . height = 154;
创建对象的三种方式
在JavaScript 中,现阶段我们可以采用三种方式创建对象(object):
1、利用字面量创建对象(最常见)
对象字面量:就是花括号{ } 里面包含了表达这个具体事物(对象)的属性和方法
{ } 里面采用了键值对的形式表示
键 : 相当于属性名
值 : 相当于属性值,可以是任意类型的值 (数字型 、字符串型、 布尔类型、 函数类型等)
var obj = {
uname:'张三',//属性
age:18,
sex:'男',
sayHi:function(){//方法
console.log('hi~');
}
}
(1)里面的属性或者方法 采取的是键值对的形式 键 属性名 : 值 属性值
(2)多个属性 或者方法 中间用逗号隔开
(3)方法 冒号后面跟的是一个匿名函数
使用对象
(1)调用对象的属性 我们采取 对象名 . 属性名 (冒号.) . 我们可以理解为 :的
console.log(obj.uname);
(2)调用属性还有一种方式 对象名['属性名']
console.log(obj['age']);
(3)调用对象的方法 sayHi 对象名.方法名() 不要忘记添加小括号
obj.sayHi();
2、利用new Object 创建对象
var obj = new Object();
obj.uname = '张三';
obj.age = 18;
obj.sex = '男';
obj.sayHi = function(){
console.log('hi');
}
利用 等号 = 赋值 的方法 添加对象的属性和方法
每个 属性 和方法 之间用分号结束
console.log(obj.uname);
console.log(obj['sex']);
obj.sayHi();
3、利用构造函数 创建对象
因为前面两种的创建对象一次只能创建一个对象
因此可以利用函数的方法 重复相同代码 把这个函数称为构造函数
又因为这个函数不一样 , 里面分装的不是普通代码 ,而是 对象
构造函数 就是把对象里面一些相同的 属性 和 方法 抽象出来分装到函数里面
function 构造函数名(){
this.属性 = 值;
this . 方法 = function(){
}
}
new 构造函数名();
1、构造函数名的首字母必须要大写
2、构造函数不需要return 就可以返回结果
3、调用函数 必须使用 new
4、我们只要 new 构造函数名()调用函数就创建一个对象
5、属性 和 方法 前面必须添加 this
练习,用构造函数创建廉颇和后裔两个英雄对象
function Man(name,type,blood){
this.name = nam