js高级第三天
instanceof
判断数据对象的构造函数是否是某个构造函数
判断对象是否是某个构造函数创建的
es6 class
作用:定义类型,功能类似于构造函数
成员
-
构造器:constructor
- 初始化成员
-
方法
使用:new调用
- new就是调用class类的constructor
class实现继承
-
关键字:extends
- class 类 extends 父类 {}
- 子类也会拥有父类中定义的成员,同时也可以访问父的类的原型
-
复用父类的构造器
- 在使用this之前一定要调用super
tabs案例
递归
解决:嵌套次数不确定的问题
递归一定要有结束条件
递归写之前要使用化归思想,总结递归实现过程
画图理解递归的实现过程
案例:递归生成目录
ES6新语法
对象简写
-
如果一个对象的属性和值同名,那么只需要写一个
-
let obj = {name,age}
- let obj = {name:name,age:age}
-
在对象中直接写方法
- let obj = {say(){}}
解构
-
数组解构
-
从数组是提取出元素
-
数组解构需要使用[]
-
let [a,b] = arr
- 从数组解构出前两个值,分别赋值给a,b
-
-
对象解构
- 从对象中解构属性所对应的值
- 对象解构使用{}
- let {name,age} = obj
展开运算符
-
展开
- 可以展开数组,将数组的元素展开为一个一个的元素
-
剩余运算符
-
从数组中取出剩余的值
- let [a,...other] = arr
-
从对象中取出剩余的属性
- let {name,...other} = obj
-
Set去重
-
new Set(数组)
-
返回一个Set对象
- let temp = [...new Set(arr)]
闭包
解决的问题
- 解决在函数外部使用函数内部声明的成员
- 提升变量的安全性
实现方式
- 外部函数中有内部函数,内部函数访问外部函数中定义的成员,返回内部函数