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

时间:2011-11-18 08:48:06

标签: javascript object prototype-programming

  

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

我试图理解JavaScript中的对象。现在我看到了很多不同的对象用途,我不能区分它们。

首先,我想知道的最重要的事情是这两者之间的差异

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

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

两者看起来都不一样,但它们的使用方式相同,或者我错了。

2 个答案:

答案 0 :(得分:4)

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

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

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

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

Something.else();

答案 1 :(得分:1)

对于JavaScript工作的采访确实是一个很好的问题。

区别在于Something.else会覆盖Something.prototype.else。也就是说,如果两者都有,则会使用Something.else

拥有原型的优势在于可以在许多对象之间共享原型以减少内存使用,简化猴子修补并实现基于原型的继承。