JS-对象-构造函数-实例化-this
1 回顾
1. 定义函数的方式
function 关键字
表达式方式
Function 构造函数
2. 函数的调用和返回值
3. 函数的参数
形参和实参
形参的默认值
arguments
4. 变量的作用域和作用域链
5. 变量提升和函数提升
6. 匿名函数
7. 自调用函数(立即执行的函数)
8. 回调函数
9. 递归函数
2 Object 对象
2.1 什么是 Object
- Object 是值的无序集合。
- Object 由属性组成,属性有属性名和属性值。
- 属性的值可以是任意类型的数据,属性值如果 function 类型的数据,这种属性可以成为方法。
2.2 如何声明 Object 对象
① 第一种 直接量方式
// 创建一个空的的对象
var obj1 = {
};
// 创建一个带有属性的 object 类型的数据
var obj2 = {
name: '芳芳',
age: 18,
getInfo: function() {
console.log('get info 函数');
},
users: [100, 200, 300, 400],
'address': '上海',
'user-info': 'hello'
};
注意: 属性名的形式是字符串,属性名的格式没有任何要求; 如果属性名满足标识符的命名规范(变量的命名规范),可以省略引号。
② 使用 Object 函数
var obj = Object();
③ 使用 Object 构造函数
var obj = new Object();
2.3 Object 对象属性的读写
① 语法
// 点语法
obj.属性名;
obj.属性名 = 值;
// [] 语法
obj['属性名'];
obj['属性名']();
// 修改object中的属性值
obj.name = '王';
obj['age'] = 25;
obj.address.area = '无锡';
console.log(obj)
// 读写object不存在的属性:undefined
console.log(obj.grade); //undefined
//obj.getName(); //报错 函数会报错 undefined后面加了括号
// 不存在的属性进行设置:添加
obj.job = '学生';
console.log(obj);
② 什么情况下必须使用 [] 语法读写属性
1. 属性名不满足标识符命名规范
2. 使用变量表示属性名
// 创建对象
var obj = {
address:'上海',
'get-info':'hello',
}
// 给obj设置属性
// 设置属性名user-name(用.要符合规范:数字,字母,下划线
obj['user-name'] = '芳芳';
obj.age = 100;
console.log(obj);
// 定义变量,把属性名赋值给了变量:.undefined 属性名就是字符串,没有引号就是变量
var attr = 'adderss';
console.log(obj.attr); //undefined
console.log(obj[attr]); //上海
2.4 遍历对象的属性
// for in 遍历 Object 所有的属性
for