나는 spine.js 문서를 읽고 있는데 함수 선언에 대해 조금 궁금해합니다. 다큐먼트에서 내가 항상 Coffeescript 함수 선언 func : - 또는 func = ->?
constructor: ->
super
....
를 읽을 수 있지만, 그렇지 않으면 난 항상
constructor = ->
super
....
을 읽을 그래서 다음과 같습니다과 = 함수 선언에 대한 동등한?
나는 spine.js 문서를 읽고 있는데 함수 선언에 대해 조금 궁금해합니다. 다큐먼트에서 내가 항상 Coffeescript 함수 선언 func : - 또는 func = ->?
constructor: ->
super
....
를 읽을 수 있지만, 그렇지 않으면 난 항상
constructor = ->
super
....
을 읽을 그래서 다음과 같습니다과 = 함수 선언에 대한 동등한?
번호
클래스를 정의하는, 약간 다르게 다른 곳에서하지보다 :
작품. 클래스 정의에서 :
은이 함수를 프로토 타입 (인스턴스 메소드)에 메서드로 넣는 것을 의미합니다. constructor:
은 생성자 함수로 사용되는 특별한 경우입니다.
컴파일 된 자바 스크립트를 보면 차이가 분명합니다.
class Foo
constructor: -> @foo = 'foo'
method: ->
는
var Foo;
Foo = (function() {
function Foo() {
this.foo = 'foo';
}
Foo.prototype.method = function() {};
return Foo;
})();
당신은 생성자를 볼 수있는 생성자입니다 (! 좋은)이로 컴파일 및 방법은 프로토 타입입니다. 사용할 때
그러나 =
당신은 단순히 로컬 변수를 할당하고 기능은 정말 생성자 또는 프로토 타입과 클래스의 일부가 아닌 (! 나쁜)
class Bar
constructor = -> @bar = 'bar'
method = ->
이에 컴파일
var Bar;
Bar = (function() {
var constructor, method;
function Bar() {}
constructor = function() {
return this.bar = 'bar';
};
method = function() {};
return Bar;
})();
커피 스크립트 구문에 대한 많은 문제는 컴파일 된 결과를보고 발견하거나 해결할 수 있습니다. 그리고 이것은 또한 내가 자바 스크립트를 알지 못하는 사이에 커피 스크립트를 배우는 것을 권장하지 않는 이유입니다. 왜냐하면 자바 스크립트가 무엇을 컴파일 하는지를 모르는 경우에는 이해하지 못하는 것들이 있기 때문입니다.
답장을 보내 주셔서 감사합니다 :) – soupdiver
+1 "커피 스크립트 구문에 관한 많은 문제는 컴파일 된 결과를보고 간단히 발견하거나 해결할 수 있습니다." 어떤 종류의 오류라도 치면 컴파일 결과를보십시오. 특히 "예기치 않은 들여 쓰기"와 같은 구문 오류의 경우 미리보기를 붙여넣고 즉각적인 피드백을 얻을 수있는 "Try it"페이지로 브라우저 창을 열면 정말 유용합니다. – Thilo
+1, 나는 http://js2coffee.org/ js 패널에서 커피를 좋아한다. – Guillaume86
컴파일 된 자바 스크립트는 어떤 모습입니까? – asawyer