-
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)。