私が取り組んでいるアバタージェネレーターには、同じことを行うが異なるボディパーツを持ついくつかのボタンイベントがあります。同じことをするさまざまな関数を持たせたくないので、すべての体の部分に 1 つの関数を使用したいと考えています。
以下の 14 行目では、オブジェクト プロパティ 'AvGen.eyes.currEyesNr' を使用していますが、代わりに、クリックされたボタン用のものを使用したいと考えています。引数として何を入れることができますか? また、正しいオブジェクト パラメーターを使用できるようにするには、関数でパラメーターを使用するにはどうすればよいですか?
1. prevBodyBtn.on('click', function(){
2. if (AvGen.theBody.currBodyNr > 0) {
3. changePart(-1);
4. }
5. });
6.
7. prevEyesBtn.on('click', function(){
8. if (AvGen.eyes.currEyesNr > 0) {
9. changePart(-1);
10. }
11. });
12.
13. function changePart(direction) {
14. AvGen.eyes.currEyesNr += direction; // <-- this is now always 'AvGen.eyes.currEyesNr' but should be dynamic
15.
16. var body = AvGen.theBody.bodies[AvGen.theBody.currBodyNr],
17. eyes = AvGen.eyes.eyes[AvGen.eyes.currEyesNr],
18. nose = AvGen.nose.noses[AvGen.nose.currNoseNr];
19. mouth = AvGen.mouth.mouths[AvGen.mouth.currMouthNr];
20.
21. AvGen.addSVG(body, eyes, nose, mouth);
22. }