请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

new User().getCount() 和 User.getCount()有什么区别

new User().getCount() 和 User.getCount()有什么区别 , getCount()方法中的this指向一样吗?

正在回答

1回答

// 第一个相当于
const u = new User()
u.getCount()

// 第二个是
User.getCount()

两个的 this 完全不一样,第一个 this 是 u ,第二个 this 是 User

0 回复 有任何疑惑可以回复我~
  • 提问者 杨艺韬 #1
    User.getCount()的时候,getCount中的this指向User,但这里的User在语法层面是一个类,在底层(也就是说抛开ES6语法糖的层面,还原到ES5),这里的this到底指向谁? 因为在之前,我理解的都是this一般指向某一个对象,不管是全局的对象,还是创建的对象,还是通过call或apply人为绑定的对象,都是指向对象。所以如今指向了一个类 User,我不能很清楚的理解其底层到底指向的是什么,因为JavaScript中本质上并没有类,只不过是一种语法糖,底层仍然是原型链来实现的。
    回复 有任何疑惑可以回复我~ 2020-05-30 23:34:07
  • 双越 回复 提问者 杨艺韬 #2
    ES5 中,User 就是一个构造函数,本质就是一个函数而已。
    回复 有任何疑惑可以回复我~ 2020-05-31 00:42:10
  • 提问者 杨艺韬 回复 双越 #3
    谢谢双越老师
    回复 有任何疑惑可以回复我~ 2020-06-03 07:46:18
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信