Как достать инкапсулированное значение в прототип?
Как это выглядит:
function A(a,b){
this.a = a;
this.b = b;
var arr = [a,b];
}
A.prototype.A1 = function(){
console.log(this.a);
}
A.prototype.A2 = function(){
console.log(this.arr);
}
var a1 = new A(1,2);
a1.A1();//1
a1.A2();//undefined
Как использовать arr
в прототипе?
arr
в данном коде является локальной переменной.
Доступ к локальной переменной может быть осуществлен только внутри функции, в которой объявлена переменная.
Либо во внутренних функциях.
function A(a,b){
this.a = a;
this.b = b;
var arr = [a,b];
function B(){
console.log('B', arr); // доступно
}
console.log('A', arr); // доступно
}
A.prototype.C = function (){ /* arr недоступен */ }
Таким образом, использовать локальную переменную arr
где-то еще кроме функции A
- невозможно.
Рекомендую использовать Symbol
для реализации более-менее приватных членов "класса".
var A = (function() {
var arrKey = Symbol();
A.prototype.getArr = function() {
return this[arrKey];
};
return A;
function A(a, b) {
this.a = a;
this.b = b;
this[arrKey] = [a, b];
};
})();
var a1 = new A(1, 2);
console.log(a1.getArr()); // [1, 2]
Виртуальный выделенный сервер (VDS) становится отличным выбором
Пробую выделить текст двумя регуляркамиПервая не работает в js из-за метасимвола \b
Добрый день,таков вопросКуда можно подключить свою карту Google JavaScript Maps API 3,тем самым добавлять к ней скрипты,стили (CSS)
Добрый деньКак можно добавить меню на свою карту Google JavaScript Maps API 3 Что бы каждый пользователь мог рисовать линию фронта,или же какую нибудь...