Я хочу создать простой класс в Javascript только с одной публичной функцией следующим образом:
function A(myTitle) {
var title = "";
this.getTitle = function() {
return title;
};
title = myTitle;
};
var anInstance = new A("first");
console.log("anInstance.getTitle(): '"+anInstance.getTitle()+"'");
// expecting to return "first"
Это работает как ожидалось.
Теперь я хочу добавить этот класс в качестве прототипа к новому классу, который включает в себя новую переменную заголовка, чтобы метод getTitle () возвращал значение переменной:
var myA = new Object();
myA.title ="second";
myA.prototype = anInstance;
console.log("myA.getTitle(): '"+myA.getTitle()+"'");
// expecting to return "second"
Но вместо ожидаемой «секунды» это приводит к следующей ошибке:
TypeError: 'undefined' is not a function (evaluating 'myA.getTitle()')
В чем проблема с доступом к этой функции?
Обновление:
Ключевым моментом для моего вопроса является следующее: в моем приложении я создам несколько тысяч экземпляров типа «А» и еще несколько других сопоставимых типов. Таким образом, эффективность и производительность памяти имеют значение. Поэтому я подумал, что было бы здорово создать соответствующие методы (еще несколько последуют, getTitle
- только один пример) только один раз, и «объекты данных» ссылаются на эти методы. Это возможно?