4.1 JS中的对象
对象:值的集合
“名”和“值”可以组成一个“名值对”
或者称为:“键值对”
“name”是属性名,“Tom”是属性值。

书写对象:
类似声明变量,用逗号隔开
如果属性名会有非法字符,应用单引号包起来防止报错

创建一个空的对象:

给对象赋值或者创建新属性:
类似C语言中结构体的赋值方法

读取属性的值:
直接用.的话,后面直接跟属性名
用方括号的话需要单引号包起来


删除属性
删除后属性变成:undefined

判断对象中是否拥有属性
注意属性名+单引号
返回值为“true”或“false”


对象的枚举
其实就是遍历对象中的各个属性: 采用for in 循环
下面开始进行区分:
- 这里输出所有属性的属性名


- 这里输出所有属性的值
.语法只能输出字符串
[]语法功能更加强大




4.2 函数的本质
作为一个属性值进入对象中

这时,函数名就是变量名a了

如果打印“a()”,会打印出a这个函数的返回值
如果加()意为将函数执行,不加括号意为将函数整个传进去
作为参数使用
这里声明函数fu,之后在延时函数中的参数部分再次使用

作为返回值作用
这里在函数a内返回了一个匿名函数,使用方法是:在调用函数a的语句后面再加一个“()”,可以看做向内调用两层

4.3 作用域链
根据作用域链的规则,底层作用域没有声明的变量,会向上一级找,找到就返回,没找到就一直找,直到window的变量,没有就返回undefined。
-
尽量多使用局部变量
-
在对象中的函数也称为“方法”
-
可以添加属性和方法