Разбираюсь с классами.
Сделал такое (вроде все лишнее вычистил, может что лишнее удалил, но суть вопроса будет понятна):
var userData = {};
class inputUserData {
constructor(settings) {
var that = this;
var initSettings = settings;
if (initSettings.debugMode) {
console.log('class inputUserData: constructor - Begin');
console.log('class inputUserData: settings %O', initSettings);
}
// Some code
return (this);
} // class inputUserData constructor
setUserID (UserID) {
if (initSettings.debugMode) console.log('class inputUserData: setUserID - Begin');
alert(UserID); // Работает
alert (initSettings.appendPlace); // Не работает
return (this);
} // setUserID ()
} // class inputUserData
var inputUserPhoneSettings = {
appendPlace: 'inputUserPhone',
debugMode: true
};
let inputUserPhone = new inputUserData (inputUserPhoneSettings);
HTML:
<table width="100%">
<tr id="inputUserPhone"></tr>
</table>
$( "#..." ).click( function(){
inputUserPhone.setUserID(101);
});
Собственно вопрос в следующем. Не могу понять где общее пространство переменных? Как их объявить в конструкторе, чтобы они были доступны из методов?
И, заодно, не смог найти главу, где описывалась конструкция that = this, чтобы не терять ссылку на нужный объект. Точно помню, что об этом была написана хорошая статья. Надо перечитать.
И, как следствие, если я правильно понимаю, то для того, чтобы можно было вызывать методы одной командой через "." я должен везде (во всех метода) возвращать ссылку на свой объект. Надо ли это делать в конструкторе?
Спасибо.