Function.prototype.myBind = function(obj, ...args) {
let _this = this
return function() {
_this.call(obj, ...args)
}
}
function myNew(P, ...args) {
let obj = new Object()
P.call(obj, ...args)
obj.__proto__ = P.prototype
return obj
}
function myAll(promises) {
return new Promise((resolve,reject) => {
let count = 0
let res = []
for(let i=0;i<promises.length;i++) {
promises[i].then((value) => {
res[i]= value
count++
if(count == promises.length) {
resolve(res)
}
}).catch((err) => {
reject(err)
})
}
})
}
手写bind、new、promise的all方法
于 2020-09-29 16:48:14 首次发布