JS对象
1、对象
1.1什么是对象
- 在现实生活中,对象是一个具体的事物。
- 在JavaScript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串,数值,数组,函数等。
- 属性:事物的特征,在对象中用属性来表示(常用名词)
- 方法:事物的行为,在对象中用方法来表示(常用动词)
1.2为什么需要对象
-
保存一个值时,可以使用变量,保存多个值(一组值)时,可以用数组。但是如果要保存一个人的完整信息呢?
-
JavaScript中的对象表达结构更清晰,更强大。
2、创建对象的三种方式
2.1利用字面量创建对象
-
对象字面量:就是花括号{ }里面包含了表达某个具体事物(对象)的属性和方法
var obj = { //对象属性 uname: 'admin', password:'123456', age:'18', //对象方法 sayHi: function(){ console.log('Hi~'); } }
-
里面的属性或者方法采用键值对的形式
-
多个属性和方法中间用逗号隔开
-
方法冒号后面跟的是一个匿名函数
2.2利用new object创建对象
var obj = new Object();
obj.uname = 'admin';
obj.password = '123456';
obj.age = 18;
obj.sayHi = function {
console.log('Hi~');
}
2.3利用构造函数创建对象
- 我们为什么要使用构造函数:因为前两种创建对象的方式一次只能创建一个对象。
- 构造函数:是一种特殊的函数,主要用来初始化对象,即对象成员变量赋初始值,它总与new运算符一起使用,我们可以把对象中一些公共的属性和方法都抽取出来,然后封装到这个函数里面。
//构造函数首字母必须要大写
function Administer(uname, password, age){
this.name = uname;
this.password = password;
this.age = age;
this.sayHi = function(word){
console.log(word);
}
}
var obj = new Administer('admin', '123456', '18');
obj.sayHi('Hi');
3、调用对象
console.log(obj.uname);
console.log(obj['uname']);
obj.sayHi();
4、new关键字
- 在内存中创建一个新的空对象
- 让this指向这个新的对象
- 执行构造函数里面的代码,给这个新对象添加属性和方法
- 返回这个新对象(所以构造函数中不需要return)
5、遍历对象(for…in)
var obj = {
uname = 'admin',
age = '18',
sex = 'man'
}
for (var key in obj) {
console.log(k);
//k变量输出得到的是属性名
console.log(obj[k]);
//obj[k]得到的是属性值
}