class中constructor中的this问题

来源:8-19 手写 Promise-构造函数

慕仰5120631

2022-08-28

class MyPromise{

    PromiseState = 'pending' 
    PromiseResult = undefined
    resolvedCallBacks = []
    rejectedCallBacks = []

    constructor(fn){

        const resolve = (value)=>{
            console.log(this,'箭头函数')
        }

        function reject(err){
            console.log(this,'普通函数')
        }

        fn(resolve,reject)
    }


}

const p1 = new MyPromise((resolve,reject)=>{
    resolve()
    reject()
})


//打印结果
MyPromise {
  PromiseState: 'pending', 
  PromiseResult: undefined,
  resolvedCallBacks: [],   
  rejectedCallBacks: []    
} 箭头函数
undefined 普通函数

发现constructor函数里resolve箭头函数中的this指向promise实例,但是声明式定义的reject函数中的this却是undefind?

写回答

1回答

双越

2022-08-28

一个是箭头函数,一个是普通函数,所以 this 不一样

0
0

一天时间高效准备前端技术一面 匹配大厂面试要求

针对时下面试高频考点,帮助新人js面试快速通关

4694 学习 · 1681 问题

查看课程

相似问题