비공개/공개 메서드로 클래스를 구현하고 사용하는 방법을 이해하고 일부 읽은 후에도이를 사용하는 데 몇 가지 문제가 있습니다.JavaScript의 비공개 공개 메서드 및 변수
나는이 다음 코드 : 나는 "프로세스"와 "InitVariables"공공 방법이 될 것입니다 개인 방법과 "getFloors"것을 원하는
var _Exits = 0;
var _Shuttles = 0;
function Parking(_str)
{
var Floors = 0;
var str = _str;
var Components = null;
function process()
{
var Exit = new Array();
Exit.push("exit1" + str);
Exit.push("exit2");
var Shuttle = new Array();
Shuttle.push("shuttle1");
Shuttle.push("shuttle2");
Components = new Array();
Components.push(Exit, Shuttle);
}
function InitVariables()
{
var maxFloors = 0;
_Exits = (Components[0]).length;
_Shuttles = (Components[1]).length;
/*
algorithm calculates maxFloors using Componenets
*/
Floors = maxFloors;
}
//method runs by "ctor"
process(str);
InitVariables();
alert(Floors);
}
Parking.prototype.getFloors = function()
{
return Floors;
}
var parking = Parking(fileString);
alert("out of Parking: " + parking.getFloors());
동안 "마루", "STR"과 "구성 요소 "사적인 vars 것입니다. 변수를 private로 만들고 "프로세스"와 "InitVariables"를 private으로 설정했지만 "getFloor"메서드로 성공하지 못했을 것으로 생각합니다.
"alert (Floors);" 나에게 옳은 대답을 보여준다. "경고 (Floors);" 아무 것도 보여주지 않습니다. 내 질문 : 1. "getFloors"를 어떻게 보완 할 수 있습니까? 2. 코드를 잘 작성했거나 변경해야합니까?
가능한 중복 [어떻게 생성자에서 자바 스크립트 전용 변수를 설정 하시겠습니까?] (http://stackoverflow.com/questions/6799103/how-to-set-javascript-private-variables-in-constructor) –