2012-10-21 4 views
2

JavaScript를 사용하여 다음과 같은 작업을 수행하는 함수 목록을 어떻게 만들 수 있습니까?함께 연결할 수있는 함수는 어떻게 만들 수 있습니까?

미안하지만 뭔가를 선택했을 때 Jquery와 같은 것이 무엇인지 모르겠다. 클래스를 추가하는 것보다는 동시에 다른 것을 할 수있다. 예를 들어

는 :

list.getAll().count() 

또는

list.getAll().removeLast().dosomthingElse().count() 

나는 많은 방법을 시도하지만 난 내가 원하는되지 않은 어떤 기능 클래스를 확장하지 않으면 불행하게도 나는 그것이 작동을 얻을 수 없습니다!

+3

'JavaScript에서 메소드를 연결하는 방법'을 알고 싶습니다. –

답변

5

체인 연결 방법이라고합니다. 당신은 단순히 방법에서 객체 참조 (this)을 반환 : (당신을

List.prototype.removeLast = function() { 
    var items = this.items.slice(0, items.length - 1); 
    return new List(items); 
} 

:

List.prototype.getAll = function() { 
    // do something 
    return this; 
} 

또는 방법은 새로운 결과를 생성하는 경우, 동일한 유형의 객체를 생성하고 그 반환

예를 들어 toCollection 메서드는 목록의 모든 항목이 포함 된 Collection 객체를 새로 만들 수 있습니다.

+0

Excelent, 감사합니다 Guffa – Abod

2

메서드를 정의해야합니다. 그것은 객체에 연결된 함수입니다.

는이처럼 정의 :

window.myMethod = function(){ 
    alert(this) ; 
} 

목적은 window 일 필요는 없습니다. 끝까지 다른 방법을 연결하려면 return this을 사용하십시오. 두 번째 방법은 첫 번째에서 (이 예에서는 window) 원래 객체를 수신하기 때문에

window.myMethod = function(){ 
    alert(this) ; 
    return this ; 
} 

window.myOtherMethod = function(){ 
    console.log(this) ; 
    return this ; 
} 

window.myMethod().myOtherMethod() ; 

이제 방법 체인을 사용할 수있다.

+0

대단히 감사합니다 ColBeseder – Abod

관련 문제