4.1 JS中的对象
对象:值的集合
“名”和“值”可以组成一个“名值对”
或者称为:“键值对”
“name”是属性名,“Tom”是属性值。
书写对象:
类似声明变量,用逗号隔开
如果属性名会有非法字符,应用单引号包起来防止报错
创建一个空的对象:
给对象赋值或者创建新属性:
类似C语言中结构体的赋值方法
读取属性的值:
直接用.的话,后面直接跟属性名
用方括号的话需要单引号包起来
删除属性
删除后属性变成:undefined
判断对象中是否拥有属性
注意属性名+单引号
返回值为“true”或“false”
对象的枚举
其实就是遍历对象中的各个属性: 采用for in 循环
下面开始进行区分:
- 这里输出所有属性的属性名
- 这里输出所有属性的值
.语法只能输出字符串
[]语法功能更加强大
4.2 函数的本质
作为一个属性值进入对象中
这时,函数名就是变量名a了
如果打印“a()”,会打印出a这个函数的返回值
如果加()意为将函数执行,不加括号意为将函数整个传进去
作为参数使用
这里声明函数fu,之后在延时函数中的参数部分再次使用
作为返回值作用
这里在函数a内返回了一个匿名函数,使用方法是:在调用函数a的语句后面再加一个“()”,可以看做向内调用两层
4.3 作用域链
根据作用域链的规则,底层作用域没有声明的变量,会向上一级找,找到就返回,没找到就一直找,直到window的变量,没有就返回undefined。
-
尽量多使用局部变量
-
在对象中的函数也称为“方法”
-
可以添加属性和方法