js中的class和java中的class有什么异同点?

如何用好super,static等属性?

阅读 8.5k
5 个回答

js class 的语法跟 java class 的语法很接近,不过受旧的语言特点限制还是有一些区别

  • JS 中没有内部类,但 JS 可以在 function(方法)中定义类

  • JS 没有真正意义上的私有成员,不过可以通过闭包模拟

  • JS 中调用成员函数必须写 this.,Java 中只要没有同名的局部变量可以直省略 this.

  • JS 的调用静态函数需要写类名,如果是静态函数调用静态函数,需要前缀类名或 this.;Java 可以直接调

  • .....

一时想不到好多,但可以肯定他们在细节上还是有很多区别的,而且 JS 是一种动态语言,很多东西在使用上比较灵活。

这完全就是两个概念,你完全可以当作js没有class

js里没有类的概念

js的继承是依靠原型链完成的。。

java的class是类。
js的class本质上还是对象,只不过引用了java中class的写法而已。

java是面向对象的语言,javascript是基于对象的语言。
java需要class来定义一个类,
ES6以前class是保留字,ES6提供了更接近传统语言的写法,引入了Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。基本上,ES6的class可以看作只是一个语法糖,它的绝大部分功能,ES5都可以做到,新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。

阮一峰的es6入门里面讲的class

js里的class只是一个语法糖,新建一个项目用babel 编译后查看代码,一目了然,

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题