Възможно дублиране:
JavaScript: Class.method vs. Class.prototype.method
Опитвам се да разбирам обект в JavaScript. Сега виждам много различни употреби на обекта и не мога да ги разделя.
Като начало най-голямото нещо, което искам да знам е каква е разликата между тези две
Something.prototype.else = function(){
return 6;
}
И
Something.else = function(){
return 6;
}
И двете изглеждат по различен начин, но се използват по същия начин, или аз греша.
Отговори:
4 за отговор № 1Ако сте запознати с други езици за програмиране, можете да приемете, че вторият е статичен метод.
Първият, от който се нуждаете от екземпляр на обекта, за да го използвате:
var x = new Something();
x.else();
Вторият, от който не се нуждаете, за да го използвате:
Something.else();
1 за отговор № 2
Това е добър въпрос за интервю за JavaScript работа наистина.
Разликата е, че Something.else
замените Something.prototype.else
, Това е, ако имате и двете, Something.else
ще бъде използвано.
Предимството на прототипите е, че прототипът може да бъде споделен между много обекти, за да се намали потреблението на паметта, да се направи по-лесна корекция на маймуни и да се приложи наследство, основано на прототип.