Показать сообщение отдельно
  #1 (permalink)  
Старый 17.06.2015, 14:35
Новичок на форуме
Отправить личное сообщение для Splik Посмотреть профиль Найти все сообщения от Splik
 
Регистрация: 26.02.2014
Сообщений: 7

Как сделать, чтобы фабрика возвращала функцию?
Допустим код:
var test = function(name) { console.log('Привет', name); };
test.property = 'Вложенное свойство';

test('Ваня'); //Привет Ваня
console.log(test.property); //Вложенное свойство

Всё работает, однако с прототипами беда, чтобы их использовать, нужно прибегнуть к фабрикам:
function factoryTest() {
  this.property = 'Вложенное свойство';
  this = function(name) {console.log('Привет', name); //ТУТ ОШИБКА - Invalid left-hand side in assignment
};
factoryTest.prototype.destroyProperty = function() {
  if('property' in this)
    delete this.property;
  return;
};
var test = new factoryTest();
test('Ваня'); //Привет Ваня
console.log(test.property); //Вложенное свойство
test.destroyPropery();


Понятно, что можно вынести функци в метод, скажем test.hello = function() {...}, однако запись менее удобная в итоге. Как можно решить данную проблему?
Ответить с цитированием