这里为什么不能使用Person了?
来源:3-3 类表达式
慕前端5592812
2019-08-22 14:21:42
const Person = new class P{
constructor () {
P.a =1;
console.log(P === Person);//这里为什么不能使用Person了?
console.log('我是类表达式,哈哈');
}
}();
2回答
好帮手慕码
2020-09-16
“hyperse”同学你好,两个问题表达的思想是一样的,person为什么为undefined呢,是因为:Person=new class P{}()是赋值操作,先执行等号右侧代码,这时候Person还没有被赋值,所以Person为undefined

同学可以再理解一下,如果还是有问题的话,建议同学新建自己的提问,便于以后对于问题的归纳和总结哦。
祝学习愉快~
好帮手慕码
2019-08-22
同学你好!
是因为使用了const。const不存在变量提升,所以这里访问不到Person。可以换成var看下:

效果:

同学可以测试一下 在函数外打印Person是p对象。
如果帮助到了你,欢迎采纳,祝学习愉快~
相似问题
回答 4