-
this 指向调用
this 是执行上下文中的一个属性,它指向最后一次调用这个方法的对象。
Function.apply(obj,args)方法能接收两个参数
obj:这个对象将代替Function类里this对象
args:这个是数组,它将作为参数传给Function(args–>arguments)Function.call(obj,[param1[,param2[,…[,paramN]]]])
obj:这个对象将代替Function类里this对象
params:这个是一个参数列表 -
原型+原型链
对象的内部将包含一个指针指向构造函数的 prototype 属性对应的值,这个指针被称为对象的原型
型对象里找这个属性一直找下去,也就是原型链的概念 -
作用域+作用域链
全局作用域,函数作用域,块级作用域(let const)
依次向上级作用域查找,直到访问到 window 对象就被终止,这一层层的关系就是作用域链。 -
异步编程的实现方式?
可以获取异步操作的消息 (简单说就是一个容器,里面保存着某个未来才会结束的事件)
有三种状态,pending(进行中)、fulfilled(已成功)、rejected(已失败)
1.回调函数 的方式(.then) 回调函数地狱
2.Promise 的方式 (new Promise ())语义不够明确。
3.generator 的方式 (co 模块等方式来实现 generator 的自动执行。)
4.async 函数的方式(await 语句的时候,如果语句返回一个 promise 对象,那么函数将会等待 promise 对象的状态变为 resolve 后再继续向下执行)
.async 函数返回的是一个 Promise 对象不能直接使用,必须要用then() 链来处理这个 Promise 对象
.如果 async 函数没有返回值和普通函数执行一样,返回Promise.resolve(undefined)。