Я создал функцию, чтобы генерировать и возвращать объект:Почему я получаю свойство undefined в моем объекте JavaScript?
function TickersObj(tag, array, boolLots, boolOptions, boolDisplay) {
tag = tag || {};
array = array || [];
boolLots = boolLots || false;
boolOptions = boolOptions || false;
boolDisplay = boolDisplay || true;
console.log('tag = ', tag);
console.log('array = ', array);
console.log('boolLots = ', boolLots);
console.log('boolOptions = ', boolOptions);
console.log('boolDisplay = ', boolDisplay);
this.assoTikArray = array;
this.lotsOfTags = boolLots;
this.tagOptions = boolOptions;
this.tagsHoverDisplay = boolDisplay;
return this;
}
Позже вниз в моем коде я прохожу в значениях, как так:
switch(type) {
case 'tagsPanel':
tag.tickers = data.data.ticker_tag.tickers;
var tickersObj = TickersObj(tag, tag.tickers, tag.lotsOfTags, true, true);
return tickersObj;
break;
....
Однако, как только он попадает в эту линию this.assoTikArray = array;
я получаю ошибка Cannot set property assoTikArray of undefined
Мысли о том, что я делаю неправильно?
В качестве альтернативы вы можете просто вернуть объект с этими ключами, вместо того, чтобы называть его конструктором. – Mathletics
Правда .. но у меня есть 3 разных случая, фигурировала функция, чтобы она работала лучше в этом случае? –
Нет, вы сохраняете функцию, но вместо того, чтобы присваивать свойства 'this' (что делает его конструктором), вы просто возвращаете объект,' return {assoTikArray: array, ...} '(делая его фабрикой.) – Mathletics