Something.prototype.else和Something.else之间有什么区别

What is the difference between Something.prototype.else and Something.else

本文关键字:Something else 什么 区别 prototype 之间      更新时间:2023-09-26

可能重复:
JavaScript:Class.method与Class.prototype.method

我正在尝试理解JavaScript中的对象。现在我看到了物体的许多不同用途,我无法将它们区分开来。

对于初学者来说,我最想知道的是这两个之间的区别

Something.prototype.else = function(){
  return 6;
}

Something.else = function(){
  return 6;
}

两者看起来不同,但使用方式相同,或者我弄错了。

如果您熟悉其他编程语言,您可以将第二种语言视为静态方法。

第一个你需要一个对象的实例来使用它:

var x = new Something();
x.else();

第二个你不需要一个实例来使用它:

Something.else();

对于JavaScript工作的面试来说,这确实是一个很好的问题。

不同之处在于Something.else覆盖Something.prototype.else。也就是说,如果两者都有,则将使用Something.else

拥有原型的好处是,原型可以在许多对象之间共享,以减少内存使用,使monkey补丁更容易,并实现基于原型的继承。