JavaScript—对象
为什么需要对象
保存一个值时,可以使用变量,保存多个值(一组值)时,可以使用数组。如果要保存一个人的完整信息(信息面板)呢?
在JavaScript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。
对象是由属性和方法组成。
- 属性:事物的特征,在对象中用属性表示。(常用名词)
- 方法:事物的行为,在对象中用方法表示。(常用动词)
数组存放张三的个人信息
var arr = ['张三', '沃尔玛购物袋', 18, 170];
js中的对象表达结构更加清晰,更强大。 张三的个人信息在对象中的表达结构如下 张三.姓名 =‘张三’ 张三.性别 =‘沃尔玛购物袋’ 张三.年龄 =‘18’ 张三.身高 =‘170’ |
使用字面量创建对象
创建对象与调用
var obj = {
uname: '张三',
age: 18,
sex: '沃尔玛购物袋',
sayHi: function () {
console.log('hi');
}
}
console.log(obj.sex); // 调用对象中的属性(方法一)
console.log(obj['uname']); // 调用对象中的属性(方法二)
obj.sayHi(); // 调用对象的方法需要遵守函数调用规范
new Object创建对象
var obj = new Object();
obj.uname = '张三';
obj.age = 18;
obj.sex = '沃尔玛购物';
obj.sayHi = function () {
console.log('hi');
}
console.log(obj.uname + '性别是' + obj.sex);
使用构造函数创建对象
概念与作用
- 前面创建对象的方法一次只能创建一个对象
- 一次创建一个对象,里面很多的属性和方法是大量相同只能复制
- 可以利用函数的方法重复这些相同的代码 ,把这个函数成为构造函数
- 这个函数不一样,里面封装的不是普通代码,而是对象
- 构造函数就是对象里面一些相同的属性和方法抽象出来封装到函数里面
注意事项
- 构造函数首字母大写
- 构造函数不需要return就可以返回结果
- 调用函数必须使用new
- 属性和方法前面必须添加this
构造函数创建对象
function Star(uname, age, sex) {
this.uname = uname;
this.age = age;
this.sex = sex;
this.run = function (ran) {
console.log(ran);
}
}
var Alice = new Star('张三', 18, '沃尔玛购物袋'); //调用函数返回的是一个对象
var Mike = new Star('李四', 20, '男');
console.log(Mike.uname);
Mike.run('100m');
new的执行过程 遍历对象
for in遍历对象
var obj = {
name: '张三',
age: 18,
sex: '男'
}
for (var k in obj) {
console.log(k);
console.log(obj[k]);
}
使用for in里面的变量通常用k或者key