서버와 클라이언트의 코드 재사용 (coffeescript)
문제.
CoffeeScript에 함수를 만들고 웹 브라우저가 있는 클라이언트와 Node에 사용하기를 원합니다.js의 서비스 포트일 때
솔루션
함수를 다음과 같이 출력합니다.
# simpleMath.coffee# these methods are privateadd = (a, b) ->
a + bsubtract = (a, b) ->
a - bsquare = (x) ->
x * x# create a namespace to export our public methodsSimpleMath = exports? and exports or @SimpleMath = {}# items attached to our namespace are available in Node.js as well as client browsersclass SimpleMath.Calculator
add: add subtract: subtract square: square
토론
위의 예에서, 우리는 'Simple Math' 라는 새로운 명칭 공간을 만들었다.만약 "export"가 유효하다면, 우리 클래스는 Node가 될 것입니다.js 모듈 출력.만약 "export"가 올바르지 않다면, "SimpleMath"는 전역 이름 공간에 추가되어 우리의 웹 페이지에서 사용할 수 있습니다.
Node에서.js에서, 우리는 "Require"명령을 사용하여 우리의 모듈을 포함할 수 있습니다.
$ node
> var SimpleMath = require('./simpleMath');undefined> var Calc = new SimpleMath.Calculator();undefined> console.log("5 + 6 = ", Calc.add(5, 6));5 + 6 = 11undefined>
웹 페이지에서, 우리는 모듈을 스크립트로 삽입할 수 있다.
<!DOCTYPE HTML><html lang="en-US"><head>
<meta charset="UTF-8">
<title>SimpleMath Module Example</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="simpleMath.js"></script>
<script>
jQuery(document).ready(function (){ var Calculator = new SimpleMath.Calculator(); var result = $('<li>').html("5 + 6 = " + Calculator.add(5, 6));
$('#SampleResults').append(result);
}); </script></head><body>
<h1>A SimpleMath Example</h1>
<ul id="SampleResults"></ul></body></html>
결과 출력:
A SimpleMath Example
· 5 + 6 = 11
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.