# 对象
# 概念
- 万物皆对象,所有事物都可以是对象
- 对象是有属性和方法组成的
- 属性:事物的特征,在对象中用属性来表示
- 方法:事物的行为,他在对象中用方法表示
# 创建对象的三种方式
# 利用字面量创建对象
对象字面量:就是花括号 {} 里面包含了表达这个具体事物(对象)的属性和方法
对象里面采用键值对的形式
- 键:相当于属性名
- 值:相当于属性值
var student = { | |
name: 'baozi', | |
age: 18, | |
Hello: function () { | |
console.log('Hello'); | |
} | |
} | |
student.Hello(); | |
console.log(student.name); | |
console.log(student['age']); |
# 利用 new Object 方法
var student = new Object(); | |
student.name = 'baozi'; | |
student.age = 18; | |
student.Hello = function () { | |
console.log('Hello'); | |
} | |
student.Hello(); | |
console.log(student.name); | |
console.log(student['age']); |
# 利用构造函数创建对象
构造函数:是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初值,它总与 new 运算符一起使用,我们可以把对象中一些公共的属性和方法抽取出来,然后封装到这个函数里面
function Student(name,age) { | |
this.name = name; | |
this.age = age; | |
this.play = function (game) { | |
console.log(game); | |
} | |
} | |
var s = new Student('baozi',18); | |
// s.name = 'baozi'; | |
// s.age = 18; | |
console.log(s.name); | |
console.log(s['age']); | |
s.play('捉迷藏'); |
# new 关键字
- 在内存中创建一个新的空对象
- 让 this 指向这个新的对象
- 执行构造函数里面的代码,给这个新对象添加属性和方法
- 返回这个新对象(所以构造函数不需要 return)
# 遍历对象属性
for...in 语句用于对数组或者对象的属性进行循环操作
var obj = { | |
name: 'baozi', | |
age: 18 | |
} | |
for (var key in obj) { | |
console.log(key + ':' + obj[key]); //key 是属性名 obj [key] 是属性值 | |
} |