.addBuddy
определяется для объектов, которые построены из конструктора BuddyList
.
Вы не можете вызывать метод объекта, который пытаетесь сделать.
Вы можетехотите создать ее как «статическую» функцию
BuddyList.addBuddy = function(buddyName) { ... }
Вы можете затем вызвать ее из прототипа, а также
BuddyList.prototype.addBuddy = function(buddyName) {
BuddyList.addBuddy.apply(this, arguments)
}
Вам нужно будет проверить любойхотя ссылка на объект BuddyList
внутри функции addBuddy
.
Помните, BuddyList
является конструктором объекта.Вызов метода addBuddy
в конструкторе не имеет смысла.Я думаю, что вы на самом деле хотите сделать это
buddyList = new BuddyList;
buddyList.append(someBuddy);
Теоретически, если есть только один BuddyList, то вы можете искать
BuddyList = new BuddyList;
Это будет перезаписыватьВаш конструктор с объектом, унаследованным от конструктора.
Вы всегда можете вызвать метод addBuddy
напрямую без объекта через прототип, как показано ниже:
BuddyList.prototype.addBudy.call(this, someBuddy)
Это действительно зависит от того, что вы пытаетесь сделать.