는 구체적으로 어떻게 다음과 같은 체인 허용 프로토 타입, 쓸 수 있습니다 : 당신이 설명하고있는 기술은 fluent interface라고함수를 함수에 추가하는 방법은 무엇입니까?
$('myDiv').html('Hello World').fadeIn('slow');
는 구체적으로 어떻게 다음과 같은 체인 허용 프로토 타입, 쓸 수 있습니다 : 당신이 설명하고있는 기술은 fluent interface라고함수를 함수에 추가하는 방법은 무엇입니까?
$('myDiv').html('Hello World').fadeIn('slow');
함수에서 적절한 항목 만 반환하면됩니다. 엄지 손가락의 기본 규칙은 아무 것도 반환하지 않는 방법을 사용하고 대신 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();
을, 모든 체인 방식 기능에서 개체의 같은 종류의 반환이 포함됩니다. 해당 객체의 프로토 타입에는 함수 정의가 포함되어 있습니다.
링크 된 기사에는 자바 스크립트를 비롯한 다양한 언어의 예제 코드가 포함되어 있습니다.
이러한 특정 상황에서 각 방법은 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
체인화 예 :
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();
이것은 내가 원하는 정확히입니다. 감사!! – 0x499602D2