C# 프로그래머로서 개인적으로 할 수 있고 개인적으로해야 할 일을 개인적으로 만드는 버릇이 있습니다. JS 유형이 모든 사적인 부분을 나에게 노출시킬 때 항상 이상한 느낌을 갖습니다. aroused '). 내부적으로 drawBackground
및 drawForeground
을 호출하는 draw
메서드가있는 유형이 있다고 가정 해보십시오.이 메서드는 자체적으로 호출 할 필요가 없습니다. 어떻게 구현해야합니까?자바 스크립트 : 내 구현을 숨겨야합니까?
옵션 1
Foo = function(){
this.draw();
};
Foo.prototype.draw = function(){
this.drawBackground();
this.drawForeground();
};
Foo.prototype.drawBackground = function(){};
Foo.prototype.drawForeground = function(){};
옵션 2
Foo = (function(){
var constructor = function(){
this.draw();
};
var drawBackground = function(){};
var drawForeground = function(){};
constructor.prototype.draw = function(){
drawBackground.call(this);
drawForeground.call(this);
};
return constructor;
})();
차이는 물론, 첫번째 예에서, drawBackground
및 drawForeground
방법 공개 API의 일부임을 되 , 반면에 그들은 두 번째 외부에 숨겨져 있습니다. 그게 바람직한가요? 어느 것을 선호해야합니까? 내 C# 습관을 자바 스크립트에 적용하는 것은 잘못되었지만 모든 것을 확장 가능하게 만들고 자바 스크립트에서 재정의 할 수 있어야합니까? 그리고 .call(this)
의 성능에 미치는 영향은 무엇입니까?
질문에 오해 한 것 같습니다.하지만 옵션 1에서는 drawBackground/drawForeground가 public (원하는 경우에도 개인이 원하는 경우에도)이므로 옵션 2 만 실행하면됩니다. –
글쎄, 그건 내 질문이다. 할 수있을 때 일을 비공개로 설정하는 것을 선호해야 하는가? – JulianR