<div class="_5pbx userContent" style="font-size:14px;line-height:1.38;overflow:hidden;color:#141823;font-family:Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif;"> <div class="text_exposed_root text_exposed" style="display:inline;"> <p style="margin:0px 0px 6px;"><span style="line-height:1.38;">자바스크립트 대체 뭔가요?</span></p> <p style="margin:0px 0px 6px;"><span style="line-height:1.38;">변수 하나 온전히 encapsulation을 할 방법을 못 찾겠네요.</span></p> <p style="margin:0px 0px 6px;"><span style="line-height:1.38;">구글링은 다 자기자신이 옳다고 해대는데... 도움 좀 주세요.. ㅠㅠ</span></p> <p style="margin:0px 0px 6px;"><span style="line-height:1.38;">C++을 주로 사용해서 자바스크립트에서 OOP하기 너무 어렵네요.</span></p> <p style="margin:0px 0px 6px;"><span style="line-height:1.38;"><br></span></p> <p style="margin:0px 0px 6px;"><span style="line-height:1.38;">제가 구글링해서 찾은 2가지 방안인데 각각에 문제점들이 있어요. c++에서는 두 부분을 모두 커버하면서 OOP 방식으로 코딩이 가능한데 자바스크립트로는 잘 못 하겠습니다. 고수 분들의 조언이 필요합니다.. ㅠㅠ</span></p> <p style="margin:0px 0px 6px;"><span style="line-height:1.38;"><br></span></p> <p style="margin:0px 0px 6px;"><span style="line-height:1.38;">코드 짜야되는데, 기본적인 게 안되서 진행을 못 하겠네요.</span></p> <p style="margin:0px 0px 6px;"><span style="line-height:1.38;"><br></span></p> <p style="margin:0px 0px 6px;"><span style="line-height:1.38;"><br></span></p> <p style="margin:0px 0px 6px;">1안,<br>-> 문제점 : this.sayHello라는 function이 classUser가 인스턴스화될때마다 같이 생성된다.</p> <p style="margin:0px 0px 6px;"><span style="line-height:1.38;">그런데 구글링해보면 자바스크립트에서 객체를 OOP스럽게 하려면 constructor안에 함수 정의하지 말란다... 하... 나참...</span></p> <p style="margin:0px 0px 6px;"><br>function classUser(SN, id, socket) {</p></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"> <div class="_5pbx userContent" style="font-size:14px;line-height:1.38;overflow:hidden;color:#141823;font-family:Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif;"> <div class="text_exposed_root text_exposed" style="display:inline;"> <p style="margin:0px 0px 6px;">var mSN = SN;</p></div></div> <div class="_5pbx userContent" style="font-size:14px;line-height:1.38;overflow:hidden;color:#141823;font-family:Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif;"> <div class="text_exposed_root text_exposed" style="display:inline;"> <p style="margin:0px 0px 6px;"><span class="text_exposed_show" style="display:inline;">var mID = id;</span></p></div></div> <div class="_5pbx userContent" style="font-size:14px;line-height:1.38;overflow:hidden;color:#141823;font-family:Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif;"> <div class="text_exposed_root text_exposed" style="display:inline;"> <p style="margin:0px 0px 6px;"><span class="text_exposed_show" style="display:inline;">var mSocket = socket;</span></p></div></div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"> <div class="_5pbx userContent" style="font-size:14px;line-height:1.38;overflow:hidden;color:#141823;font-family:Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif;"> <div class="text_exposed_root text_exposed" style="display:inline;"> <div class="text_exposed_show" style="display:inline;"> <p style="margin:0px 0px 6px;">this.sayHello = function() {</p></div></div></div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"> <div class="_5pbx userContent" style="font-size:14px;line-height:1.38;overflow:hidden;color:#141823;font-family:Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif;"> <div class="text_exposed_root text_exposed" style="display:inline;"> <div class="text_exposed_show" style="display:inline;"> <p style="margin:0px 0px 6px;">console.log('SN:'+ mSN);</p></div></div></div></blockquote></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"> <div class="_5pbx userContent" style="font-size:14px;line-height:1.38;overflow:hidden;color:#141823;font-family:Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif;"> <div class="text_exposed_root text_exposed" style="display:inline;"> <div class="text_exposed_show" style="display:inline;"> <p style="margin:0px 0px 6px;">}</p></div></div></div></blockquote> <div class="_5pbx userContent" style="font-size:14px;line-height:1.38;overflow:hidden;color:#141823;font-family:Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif;"> <div class="text_exposed_root text_exposed" style="display:inline;"> <div class="text_exposed_show" style="display:inline;"> <p style="margin:0px 0px 6px;">};</p> <p style="margin:0px 0px 6px;"><br></p> <p style="margin:6px 0px;">2안,<br>-> 문제점 : this를 붙이는 순간 변수가 public됩니다. <span style="line-height:1.38;">다른 개발자가 내가 보호하려던 변수를 맘대로 꺼내쓸수 있음.</span></p> <p style="margin:6px 0px;">이 방법을 하려는 이유는 1안에서의 문제점이 보완됩니다.</p> <p style="margin:6px 0px;"><br>function classUser(SN, id, socket) {<br></p></div></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"> <div class="_5pbx userContent" style="font-size:14px;line-height:1.38;overflow:hidden;color:#141823;font-family:Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif;"> <div class="text_exposed_root text_exposed" style="display:inline;"> <div class="text_exposed_show" style="display:inline;"> <p style="margin:6px 0px;">this.mSN = SN;</p></div></div></div> <div class="_5pbx userContent" style="font-size:14px;line-height:1.38;overflow:hidden;color:#141823;font-family:Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif;"> <div class="text_exposed_root text_exposed" style="display:inline;"> <div class="text_exposed_show" style="display:inline;"> <p style="margin:6px 0px;">this.mID = id;</p></div></div></div> <div class="_5pbx userContent" style="font-size:14px;line-height:1.38;overflow:hidden;color:#141823;font-family:Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif;"> <div class="text_exposed_root text_exposed" style="display:inline;"> <div class="text_exposed_show" style="display:inline;"> <p style="margin:6px 0px;">this.mSocket = socket;</p></div></div></div></blockquote> <div class="_5pbx userContent" style="font-size:14px;line-height:1.38;overflow:hidden;color:#141823;font-family:Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif;"> <div class="text_exposed_root text_exposed" style="display:inline;"> <div class="text_exposed_show" style="display:inline;"> <p style="margin:6px 0px;">};</p> <p style="margin:6px 0px;">classUser.prototype.sayHello = function() {<br></p></div></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"> <div class="_5pbx userContent" style="font-size:14px;line-height:1.38;overflow:hidden;color:#141823;font-family:Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif;"> <div class="text_exposed_root text_exposed" style="display:inline;"> <div class="text_exposed_show" style="display:inline;"> <p style="margin:6px 0px;">console.log('SN:' + this.mSN );</p></div></div></div></blockquote> <div class="_5pbx userContent" style="font-size:14px;line-height:1.38;overflow:hidden;color:#141823;font-family:Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif;"> <div class="text_exposed_root text_exposed" style="display:inline;"> <div class="text_exposed_show" style="display:inline;"> <p style="margin:6px 0px;">};</p> <p style="margin:6px 0px;"><br></p> <p style="margin:6px 0px;"><br></p> <p style="margin:6px 0px;"><br></p> <p style="margin:6px 0px;">1,2안을 모두 보완해주는 해결책 없나요?</p> <div><br></div></div></div></div> <div style="color:#141823;font-family:Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif;line-height:15.359999656677246px;"></div> <div style="color:#141823;font-family:Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif;line-height:15.359999656677246px;"> <div class="clearfix"></div></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.