Вы не выставляете функцию getMyVar.
Вы хотите:
function myFunction() {
var myVar = "I think I am encapsulated";
this.getMyVar = function() {
return myVar;
}
}
Однако myVar также локально ограничен для выполнения функции ... и функция не была выполнена.
Последние строки должны быть
(new myFunction()).getMyVar();
РЕДАКТИРОВАТЬ: Хотя, возможно, все, что вы ищете, это псевдо-пространства имен? В этом случае вы можете сделать:
var myObject = {
myProperty: "value",
myFunction: function() { }
}
Или, более вероятно, вы пытаетесь заставить myVar действовать как личный участник, в этом случае вы можете сделать:
var myObject = function() {
var myVar = "I think I am encapsulated";
return {
getMyVar: function() {
return myVar;
}
}
}(); //self-executing function