Сделать переменные объекта доступными во всех "более глубоких" областях
Я в настоящее время кодирую своего рода плагин в JS. Я только что узнал об объектах, и меня отчасти раздражает тот факт, что я не могу получить доступ к переменным, установленным в конструкторе, на два или более уровня выше. Вот что я имею в виду:
var myConstructor = function()
{
this.one = "one";
this.two = "two";
this.publicMethod = function()
{
console.log("I can access: ", this.one);
var privateMethod = function()
{
console.log("I cannot access var two like this: ", this.two);
};
privateMethod();
};
};
var myObject = new myConstructor();
myObject.one = 1;
myObject.two = 2;
myObject.publicMethod();
Итак, как я мог сделать privateMethod
получить доступ к переменным, которые установлены в конструкторе? Точно так же, как publicMethod this
сделать это. Это возможно? Большое спасибо.
1 ответ
Решение
Попробуй это.
var myConstructor = function()
{
this.one = "one";
this.two = "two";
this.publicMethod = function()
{
// new variable
_two = this.two;
console.log("I can access: ", this.one);
var privateMethod = function()
{
console.log("I cannot access var two like this: ", _two);
};
privateMethod();
};
};