Допустим, у меня есть следующий класс:Доступ «частные» переменные в JavaScript
function MyClass(){
this.public = function(){
console.log(private);
};
var private = 10;
}
var test = new MyClass;
test.public(); // logs 10
test.private; // undefined
Я хочу знать, могу ли я получить доступ к частной переменной с внешней стороны. Глядя на консоли Chrome, это представляется возможным, так как его контекст показано:
EDIT: Просто чтобы прояснить: я знаю, как правильно выставить его. Просто хочу быть уверенным, что нет никакого хакерского способа получить к нему доступ.
'private' не является свойством объекта' test', доступ к которому можно использовать с помощью символа '.'. Доступ к внутреннему закрытию может быть доступен только внутри закрытия. – Rayon
Во-первых, это не очень хорошая идея, чтобы выставлять частные переменные-члены. Во-вторых, функция не является классом. Пожалуйста, не путайте Javascript с объектно-ориентированным языком. В-третьих, просто создайте что-то вроде IIFE и верните что-то с функцией getter для вашей частной переменной. Проверьте: https://en.wikipedia.org/wiki/Immediately-invoked_function_expression –
Да, я знаю, что это не настоящий класс. Я не использую этот код, я просто хочу знать, возможно ли это или нет. – GBarroso