文章目录
一、什么是对象
现实生活中, 万物皆对象, 对象是一个具体的事物. 看得见摸得着的实物.
在JavaScript中, 对象是一组无序的相关属性和方法的集合. 所有的事物都是对象, 例如 : 字符串, 数值, 数组, 函数等.
对象是由属性和方法组成的.
- 属性 : 事物的特征, 在对象中用属性来表示
- 方法 : 事物的行为, 在对象中用方法来表示.
二、对象的作用
保存一个值时, 可以使用变量.
保存多个值时, 可以使用数组.
保存一个人的完整信息时, 可以使用对象.
JS中的对象表达结构更清晰.
三、利用对象字面量创建对象
对象字母量 : 就是花括号 { } 里面包含了表达具体事物的属性和方法
创建对象
// 创建了一个空的对象
var obj = {};
创建带属性和方法的对象
var obj = {
uname: '张三',
age: 18,
sayHi: function() {
console.log('hi~');
}
}
属性和方法
里面的属性或者方法我们采取键值对的形式 属性名 : 属性值.
多个属性或者方法中间用逗号隔开
方法冒号后面跟的是一个匿名函数
调用对象的属性
调用对象的属性 方法1 : 对象名.属性名
调用对象的属性 方法2 : 对象名[‘属性名’]
调用对象的方法
调用对象的方法 : 对象名.方法名()
四、利用 new object创建对象
创建一个空对象
var obj = new Object();
追加属性和方法
obj.uname = '张三',
obj.sayHi = function() {
console.log('hi~');
}
五、利用 构造函数 创建对象
我们一次创建一个对象, 里面很多属性和方法是大量相同的.
因此我们可以利用函数的方法, 重复这些相同的代码, 我们就把这个函数称为 构造函数.
构造函数的语法格式
function 构造函数名() {
this.属性 = 值;
this.方法 = function() {}
}
构造函数的使用
new 构造函数名();
构造函数和普通函数的区别
- 构造函数名字首字母大写.
案例
<script>
function Star(uname, age, sex) {
this.name = uname;
this.age = age;
this.sex = sex;
this.sayHi = function (say) {
console.log(say);
}
}
var zs = new Star('张三', 18, '男');
console.log(zs.name);
zs.sayHi('hi~');
</script>
六、new关键字执行过程
- new构造函数在内存中创建了一个空的对象
- this会指向创建的对象
- 执行构造函数里面的代码, 给这个空对象添加属性和方法
- 返回这个对象.
七. 遍历对象
for in 遍历对象
语法格式
for (变量 in 对象) {
}
for(var k in obj) {
console.log(k); // k 变量输出 得到的是 属性名.
console.log(obj[k]); // obj[k] 得到的是属性值.
}