0
m2
메서드를 호출하는 m1
메서드가있는 개체의 singleton 인스턴스가 있습니다.이 인스턴스는 까지 m3
...을 호출합니다.매개 변수가 여러 메서드로 전송되는 방식 최적화
내가 m1
에게 보내는 매개 변수 집합이 있으며 m10
에 의해서만 사용됩니다. 하지만 결국이 매개 변수를 m2
... m9
으로 전달하지만 결국이 메서드로 사용되지는 않습니다. m10
을 m1
에서 직접 호출 할 수도 있습니다. 왜냐하면 m10
에는 다른 매개 변수가 필요하기 때문입니다.
문제는 각 메소드에 이러한 불필요한 매개 변수를 전달하고 싶지 않다는 것입니다. 특히 내부에서 사용하지 않을 경우 더욱 그렇습니다. 클로저를 사용하여이 문제를 없애는 방법이 있습니까?
var singleTon = function(){};
singleTon.prototype.m1 = function(a,b,c){
this.m2(a,b,c);
};
singleTon.prototype.m2 = function(a,b,c){
this.m3(a,b,c);
};
... //Goes on till m9
singleTon.prototype.m10 = function(a,b,c,d,e){
//Perform some operations with a,b,c,d,e
};
매번 똑같은 매개 변수를 전달할 때 혼란 스럽습니다. 그렇다면 'Function.prototype.apply'을 사용하여 살펴 보았습니까? 명시 적으로 - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply의 이름을 지정하지 않고도'arguments' 객체로 메소드를 호출 할 수 있습니다. 희망을 갖고 나는 오해하지 않는다. – Ian
왜이 파라미터들을 객체의 속성으로 만들고 필요에 따라 주입하지 않는가? –
@HenriqueBarcelos 내가 객체의 속성을 만들면 범위가이 전체 객체의 범위 인이 객체의 범위가됩니다. 'm1' 메소드를 호출 할 때마다 범위가 필요합니다. – Tushar