Поскольку, когда мы объявляем функцию, мы получаем, что ее свойство конструктора прототипа указывает на саму функцию, неудобно ли переписывать прототип функции так:
function LolCat() {
}
// at this point LolCat.prototype.constructor === LolCat
LolCat.prototype = {
hello: function () {
alert('meow!');
}
// other method declarations go here as well
};
// But now LolCat.prototype.constructor no longer points to LolCat function itself
var cat = new LolCat();
cat.hello(); // alerts 'meow!', as expected
cat instanceof LolCat // returns true, as expected
Это не то, как я это делаю, я по-прежнему предпочитаю следующий подход
LolCat.prototype.hello = function () { ... }
но я часто вижу, как другие люди делают это.
Так есть ли какие-либо последствия или недостатки, удалив ссылку на конструктор из прототипа, перезаписав объект-прототип функции для удобства, как в первом примере?