함수 인수를 사용한 메서드 체인
CoffeeScript에서 메서드를 연결하는 가장 좋은 방법은 무엇입니까? 예를 들어,이 JavaScript가 있다면 CoffeeScript로 어떻게 작성할 수 있습니까?
var req = $.get('foo.htm')
.success(function( response ){
// do something
// ...
})
.error(function(){
// do something
// ...
});
최신 CoffeeScript를 사용 하여 다음을 수행합니다.
req = $.get 'foo.html'
.success (response) ->
do_something()
.error (response) ->
do_something()
... 컴파일 :
var req;
req = $.get('foo.html').success(function(response) {
return do_something();
}).error(function(response) {
return do_something();
});
취할 수있는 두 가지 접근 방식이 있습니다. CoffeeScript에 대한 최고의 "문자 그대로"번역은 (제 생각에는)
req = $.get('foo.htm')
.success((response) ->
# do something
)
.error( ->
# do something
)
다른 방법은 인라인 함수를 "outline"으로 옮기는 것입니다. 이는 Jeremy Ashkenas (CoffeeScript의 제작자)가 일반적으로 중요하지 않은 함수 인수에 선호하는 스타일입니다.
onSuccess = (response) ->
# doSomething
onError = ->
# doSomething
req = $.get('foo.htm').success(onSuccess).error(onError)
후자의 접근 방식은 success
및 error
콜백이 여러 줄일 때 더 읽기 쉽습니다 . 전자는 1-2 라이너 만 있으면 좋습니다.
때때로 연결하는 것보다 괄호를 적게 사용하는 것을 선호하므로 Trevor의 마지막 예제를 수정합니다.
req = $.get 'foo.htm'
req.success (response) -> # do something
req.error -> # do something
Coffeescript 1.7부터 연결이 상당히 단순화되었으며 여기에 언급 된 괄호 관련 해결 방법이 필요하지 않습니다. 이제 위의 예를 다음과 같이 작성할 수 있습니다.
req = $.get 'foo.htm'
.success ( response ) ->
alert "success"
.error ->
alert "error"
컴파일되는
var req;
req = $.get('foo.htm').success(function(response) {
return alert("success");
}).error(function() {
return alert("error");
});
https://gist.github.com/aseemk/8637896 에서이 기능과 기타 CS 1.7 기능에 대한 설명을 볼 수 있습니다.
참고 URL : https://stackoverflow.com/questions/5144191/method-chaining-with-function-arguments
'Program Tip' 카테고리의 다른 글
Bash : 첫 번째 명령 줄 인수를 취하고 나머지는 전달 (0) | 2020.11.18 |
---|---|
Visual Studio 2013에서 SSRS (.rptproj) 파일을 열려면 어떻게하나요? (0) | 2020.11.18 |
ALTER 테이블-MySQL에 AUTOINCREMENT 추가 (0) | 2020.11.17 |
Mocha로 Express 앱을 테스트하려면 어떻게하나요? (0) | 2020.11.17 |
Json에서 getString ()과 optString ()의 차이점 (0) | 2020.11.17 |