我试图理解JavaScript中的对象。现在我看到了很多不同的对象用途,我不能区分它们。
首先,我想知道的最重要的事情是这两者之间的差异
Something.prototype.else = function(){
return 6;
}
和
Something.else = function(){
return 6;
}
两者看起来都不一样,但它们的使用方式相同,或者我错了。
答案 0 :(得分:4)
如果您熟悉其他编程语言,可以考虑将第二种编程语言作为静态方法。
第一个你需要一个对象的实例才能使用它:
var x = new Something();
x.else();
第二个你不需要一个实例来使用它:
Something.else();
答案 1 :(得分:1)
对于JavaScript工作的采访确实是一个很好的问题。
区别在于Something.else
会覆盖Something.prototype.else
。也就是说,如果两者都有,则会使用Something.else
。
拥有原型的优势在于可以在许多对象之间共享原型以减少内存使用,简化猴子修补并实现基于原型的继承。