Gro*_*ler 3 javascript prototypal-inheritance
我问了以下问题,为什么类在典型的无类原型继承语言(如 js)中使用: 类在基于原型继承的语言中使用
似乎它们是“语法糖”,因为大众喜欢类……而且它们只是背景中的常规 js 对象。
现在我想知道js假“类”和经典类之间的区别是什么?
如果我将 JS“类”与 Java 中的类进行比较,我首先要说的是JS“类”只是一个对象,而 Java 类不是。
一个对象有它自己的属性/字段/方法。这也是 JS“类”可以拥有的。但是 Java 中的类不能,只有实例可以。
有些人可能会说“等等,但是静态字段和方法怎么样?我可以做一个静态MyClass.myField字段和MyClass.doSomething()方法。”
是的你可以。但从我的角度来看,它们只会被“放置”在MyClass命名空间中,它们并不是类的真正属性:
this静态方法 - 但您可以this在 JS“类”中的类级方法中使用因此,带有静态字段或方法的 Java 类只是这些字段和方法的命名空间,仅此而已。更明显的是,在静态方法中,您无法找出您所在的类(没有技巧):
因此,在 JS 中伪类是一流的对象,而在 Java 中则不是。
| 归档时间: |
|
| 查看次数: |
1035 次 |
| 最近记录: |