2
여러 메소드로 객체를 만들려고하지만 동일한 객체의 다른 메소드를 사용하려는 일부 메소드가 필요합니다.동일한 객체에서 다른 함수의 객체 함수 사용
var myObj = {
sum: function (a,b) {
return a + b;
},
somethingThatUsesSum: function (a,b) {
return this.sum(a,b) * 5;
}
};
이 당신이 그것을 호출하는 경우 다음과 같이 "작동": this
이 myObj
로 설정되어
myObj.somethingThatUsesSum(1, 2);
때문에 여기에 예입니다. 그러나 적용을 사용하는 경우 명시 적으로 this
을 myObj
으로 설정하지 않으면 작동하지 않습니다.
나는 에 this
을 사용하는 것을 좋아하지 않지만 더 좋은 방법이 있는지 궁금합니다.
myObj
의 두 함수에서 모두 사용할 수있는 로컬 함수 sum
으로 클로저를 만들 수 있다는 것을 알고 있지만 위에 제안 된 접근 방식에 가까운 다른 방법이 있는지 알고 싶었습니다.
. 치명적인'with' 문은 'this'를 명시 적으로 참조하는 것을 피하는 한 가지 방법을 제공하지만 다른 문제가 있습니다. – Pointy
감사합니다. 나는 그런 경우라고 생각했지만 단순화 된 해결책이 될 수있는 것을 놓치고 있는지 알고 싶었습니다. –
어디에 적용 하시겠습니까? – bfavaretto