2014-03-25 11 views
0

나는 제대로 그래서 구글에서 답을 찾을 수있는 방법에 대한 문구 알고 있지만, 여기에 기본적으로 내 문제입니다하지 않습니다 내가 JS에서이 같은 출력 뭔가 내 커피 스크립트를 원하는CoffeeScript에서 함수를 함수의 인수로 전달하는 방법은 무엇입니까?

: (나는를 개발하고 있어요 노드 응용 프로그램)

var someapp = require('someapp') 
var another = require('another') 

someapp.configure(function() { 
    someapp.use(another.do('argument')); 
}); 

그래서 나는 그것을 커피 스크립트에서이 방법을 썼다 :

:

someapp = require 'someapp' 
another = require 'another' 

someapp.configure() -> 
    someapp.use another.do 'argument' 

을하지만 그 대신,이 출력을 받고 있어요

분명히 내 가장 큰 문제는 라인 return someapp.use(another["do"]('argument'));입니다. CoffeeScript 문서 또는 다른 구문에서 찾을 수 없기 때문에 누군가 올바른 방향으로 나를 가리킬 수 있기를 바랍니다. 미리 감사드립니다. docs에 따르면

+0

출력에 어떤 문제가 있습니까? 나는 그것이 같다고 생각한다. another.do == another [ "do"] –

+0

'do'는 예약어 (및 키워드)입니다. 그것은 정상적인 행동입니다. – Florent

+0

나는'another.do'가'another [ "do"]'와 다른 인상을 받고 있습니다 ... 그것입니까? 죄송합니다, 저는 자바 스크립트 구문론의 전문가는 아니지만, 예를 들어'another.do'는'another' 클래스에있는 함수를 참조하고'another [ "do"]는 특정 클래스에있는 특정 값을 참조한다고 생각했습니다. 'do'를 키로하는'another' 배열입니다. 아무도 분명히 해줄 수 있습니까? –

답변

1

,

커피 스크립트는 즉시 인수를 전달, 전달 된 함수를 호출하는 do 키워드를 제공합니다.

따라서, 커피 잔은 another["do"]을 출력하므로 do 예약어는 사용되지 않습니다.

또한이 경우 함수 another.do은 함수 일 수있는 개체 속성입니다. another.do()another["do"]()을 모두 사용하여 액세스 할 수 있습니다.

+0

흠, 함수로'do'를 사용했는데, 이것은 예약 된 키워드라는 것을 잊어 버렸습니다. 'do' 대신에'happy'를 사용한다고 가정하면, 나는 기대하고있는'another.happy' 대신에''happy''를 출력합니다. –

+0

@KixPanganiban 어떤 이유로 Coffeescript는 도트 표기법 대신 표기법을 사용하여 액세스 된 객체 속성을 출력하는 것으로 보입니다. 어쩌면 점 표기법으로 만 호출 할 수있는 객체 메소드와 구별 할 수 있습니다. – Aliou

관련 문제