Инкапсуляция JavaScript

1,00
р.
Как достать инкапсулированное значение в прототип?
Как это выглядит:
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 - невозможно.