Tags

커피스크립트 :: join 치환 VIM html function listchars vimrc LCS conceal JavaScript Prototype accessors RUBY pathogen VI 매개변수 Target replaceAll list replace Commonjs nbsp 자바스크립트 Trail Coffeescript SPLIT 루비 arguments

'Coffeescript'에 해당되는 글 2건

  1. 2012/01/30 CoffeeScript, prototype의 단축 표현 '::'
  2. 2011/12/10 CoffeeScript, CoffeeScript 가 바로 생각나지 않는 JavaScript 코드들.

CoffeeScipt 에서 prototype 사용법

JavaScript Prototype

JavaScript에서 prototype은 해당 클래스의 모든 인스턴스가 공유하는 메소드입니다.

String.prototype.bark = function() {
	return "멍멍!!";
};
String("강아지").bark(); // 멍멍!!
"Dog".bark();		// 멍멍!!
"고양이".bark();		// 멍멍!!

그런데 .prototype. 이거 입력이 은근 귀찮습니다.

CoffeeScript Prototype

커피스크립트에서는 :: 연산자로 .prototype.을 대신합니다.

String::bark = -> "멍멍!!"
String("강아지").bark()		## 멍멍!!
"Dog".bark()			## 멍멍!!
"고양이".bark()			## 멍멍!!

가끔 prototype의 메소드를 static 메소드인양 쓰고 싶다면 그냥 쓰면 됩니다.

String::bark() ##"멍멍!!"

보다 완벽한 내용은 CoffeeScript 홈페이지에서...

저작자 표시 변경 금지
Trackback 0: Comment 0

"setTimeout" on JavaScript.

setTimeout 은 자바스크립트에서 자주 쓰이는 평범한 함수의 형태입니다.

setTimeout(function(){
	eat('food');
}, 6000);

CoffeeScript 코드로 바꾸려면 어떻게 해야 할까요?

"setTimeout" on CoffeeScript.

저는 이렇게 작성했습니다. 바로 생각이 나지 않더군요.

setTimeout ()->
    eat 'food'
  , 6000

"assert.response" on JavaScript

JavaScript TDD 프레임웍인 expresso에서 assert.response 는 이렇게 생겼습니다.

assert.response(server, {
		url: '/foo',
		method: 'POST',
		data: 'bar baz'
	}, {
		body: '/foo bar baz',
		status: 200
	}, function(res){
	// All done, do some more tests if needed
	});

커피 스크립트로, 어떻게 작성해야 할까요?

"assert.response" on CoffeeScript

많은 변종을 거쳐서 다음과 같은 코드가 작성되었습니다. 테스트 링크

assert.response server
  , 
    url: '/foo'
    method: 'POST'
    data: 'bar baz'
  ,
    body: '/foo bar baz'
    status: 200
  ,
    (res) ->
      # All done, do some more tests if needed

뭘 기억하고 싶은 거냐면...

CoffeeScript 코드를 작성하다 자주 오류가 나는 부분을 정리해 놓은 것입니다.

저작자 표시 변경 금지
Trackback 0: Comment 0