2011-08-08 4 views

답변

1

함수에서 적절한 항목 만 반환하면됩니다. 엄지 손가락의 기본 규칙은 아무 것도 반환하지 않는 방법을 사용하고 대신 this을 반환합니다.

function Constructor(){}; 

Constructor.prototype = { 
    foo: function(){ 
     console.log('foo'); 
     return this; 
    }, 
    bar: function(x){ 
     console.log('bar', x); 
     return this; 
    } 
} 

var obj = new Constructor(); 
obj.foo().bar(17).bar(42).foo(); 
+0

이것은 내가 원하는 정확히입니다. 감사!! – 0x499602D2

5

을, 모든 체인 방식 기능에서 개체의 같은 종류의 반환이 포함됩니다. 해당 객체의 프로토 타입에는 함수 정의가 포함되어 있습니다.

링크 된 기사에는 자바 스크립트를 비롯한 다양한 언어의 예제 코드가 포함되어 있습니다.

1

이러한 특정 상황에서 각 방법은 this을 반환합니다. 그래서 :

// ... this has to be the most impractical class I've ever written, but it is a 
// great illustration of the point. 
var returner = new function() { 
    this.returnThis = function(){ 
     console.log("returning"); 
     return this 
    } 
} 
var ret2 = returner.returnThis().returnThis(). 
      returnThis().returnThis() // logs "returning" four times. 

console.log(ret2 == returner) // true 
1

체인화 예 :

var avatar = function() { 

    this.turnLeft = function { 
     // some logic here 
     return this; 
    } 

    this.turnRight = function { 
     // some logic here 
     return this; 
    } 

    this.pickUpItem = function { 
     // some logic here 
     return this; 
    } 

}; 


var frodo = new avatar(); 
frodo.turnLeft().turnRight().pickUpItem(); 
관련 문제