뭐.. 자바스크립트가 HTML에 동적인 기능을 추가한 것으로 시작하고, 이게 점차 쌓이다 보니 표준으로 자리잡은 건 맞습니다. <div>하지만.. 여러분들께 묻습니다.</div> <div><br /></div> <div>자바스크립트가 쉽습니까?</div> <div>쉬워 보이십니까?</div> <div><br /></div> <div>그렇게 보이신다면 서점에 "자바스크립트 완벽 가이드" 책을 보세요.</div> <div>그렇게 쉽다는 자바스크립트를 왜이렇게 두껍께 설명했을까요? 잡지 팜플렛 분량도 아니고.</div> <div><br /></div> <div>오히려 여러분들은 저한테 되려 물어보고 싶어하실 겁니다.</div> <div>어렵습니다. 아직도 원리 이해 못한것도 있고 모르는것도 있습니다.</div> <div>그래서 저는 자바스크립트 엔진인 V8까지 파고들고 말았습니다.</div> <div><br /></div> <div>어떻게 돌아가는 현실인지 node.js 를 통해서 한가지 예를 들고 끝내겠습니다.</div> <div>나머지는 여러분의 몫입니다.</div> <div><br /></div> <div>자바스크립트:</div> <div><br /></div> <div><pre class="sh_sourceCode" style="font-size: 14px; line-height: 1.5438em; font-family: Monaco, Consolas, 'Lucida Console', monospace; margin-top: -0.5em; margin-bottom: 1.1em; padding: 1em 1.6em 1em 1.2em; vertical-align: top; background-color: #f8f8f8; border-style: solid; border-color: #e8e8e8; border-width: 1px 1px 1px 6px; overflow-x: auto"><code style="line-height: 1.5438em; font-family: Monaco, Consolas, 'Lucida Console', monospace; margin: 0px; padding: 0px">module<span class="sh_symbol" style="color: #333333">.</span>exports<span class="sh_symbol" style="color: #333333">.</span>hello <span class="sh_symbol" style="color: #333333">=</span> <span class="sh_keyword" style="color: #cc9966">function</span><span class="sh_symbol" style="color: #333333">()</span> <span class="sh_cbracket" style="color: #333333">{</span> <span class="sh_keyword" style="color: #cc9966">return</span> <span class="sh_string" style="color: #669900">'world'</span><span class="sh_symbol" style="color: #333333">;</span> <span class="sh_cbracket" style="color: #333333">}</span><span class="sh_symbol" style="color: #333333">;</span></code></pre></div> <div><br /></div> <div>node.js V8:</div> <div><br /></div> <div><pre class="sh_sourceCode" style="font-size: 14px; line-height: 1.5438em; font-family: Monaco, Consolas, 'Lucida Console', monospace; margin-top: -0.5em; margin-bottom: 1.1em; padding: 1em 1.6em 1em 1.2em; vertical-align: top; background-color: #f8f8f8; border-style: solid; border-color: #e8e8e8; border-width: 1px 1px 1px 6px; overflow-x: auto"><code style="line-height: 1.5438em; font-family: Monaco, Consolas, 'Lucida Console', monospace; margin: 0px; padding: 0px">#include <span class="sh_symbol" style="color: #333333"><</span>node<span class="sh_symbol" style="color: #333333">.</span>h<span class="sh_symbol" style="color: #333333">> </span>#include <span class="sh_symbol" style="color: #333333"><</span>v8<span class="sh_symbol" style="color: #333333">.</span>h<span class="sh_symbol" style="color: #333333">> </span>using namespace v8<span class="sh_symbol" style="color: #333333">; </span>Handle<span class="sh_symbol" style="color: #333333"><</span>Value<span class="sh_symbol" style="color: #333333">></span> <span class="sh_function">Method</span><span class="sh_symbol" style="color: #333333">(</span><span class="sh_keyword" style="color: #cc9966">const</span> Arguments<span class="sh_symbol" style="color: #333333">&</span> args<span class="sh_symbol" style="color: #333333">)</span> <span class="sh_cbracket" style="color: #333333">{ </span> HandleScope scope<span class="sh_symbol" style="color: #333333">; </span> <span class="sh_keyword" style="color: #cc9966">return</span> scope<span class="sh_symbol" style="color: #333333">.</span><span class="sh_function">Close</span><span class="sh_symbol" style="color: #333333">(</span><span class="sh_predef_func">String</span><span class="sh_symbol" style="color: #333333">::</span><span class="sh_function">New</span><span class="sh_symbol" style="color: #333333">(</span><span class="sh_string" style="color: #669900">"world"</span><span class="sh_symbol" style="color: #333333">)); </span><span class="sh_cbracket" style="color: #333333">} </span>void <span class="sh_function">init</span><span class="sh_symbol" style="color: #333333">(</span>Handle<span class="sh_symbol" style="color: #333333"><</span><span class="sh_predef_func">Object</span><span class="sh_symbol" style="color: #333333">></span> exports<span class="sh_symbol" style="color: #333333">)</span> <span class="sh_cbracket" style="color: #333333">{ </span> exports<span class="sh_symbol" style="color: #333333">-></span><span class="sh_function">Set</span><span class="sh_symbol" style="color: #333333">(</span><span class="sh_predef_func">String</span><span class="sh_symbol" style="color: #333333">::</span><span class="sh_function">NewSymbol</span><span class="sh_symbol" style="color: #333333">(</span><span class="sh_string" style="color: #669900">"hello"</span><span class="sh_symbol" style="color: #333333">), </span> FunctionTemplate<span class="sh_symbol" style="color: #333333">::</span><span class="sh_function">New</span><span class="sh_symbol" style="color: #333333">(</span>Method<span class="sh_symbol" style="color: #333333">)-></span><span class="sh_function">GetFunction</span><span class="sh_symbol" style="color: #333333">()); </span><span class="sh_cbracket" style="color: #333333">} </span><span class="sh_function">NODE_MODULE</span><span class="sh_symbol" style="color: #333333">(</span>hello<span class="sh_symbol" style="color: #333333">,</span> init<span class="sh_symbol" style="color: #333333">)</span></code></pre></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.