やりたいこと:
変数を利用して下記コードを使いまわせるようにしたい。
例えば、下記コードの2行があるとして、
obj.elm.style.left
obj.elm.style.top
left.topを変えるだけで他のコードの内容は同じなのでその部分だけ変更して
活用できるようにしたい
試してみたこと:
obj.elm.style.left
obj.elm.style.top
の部分を引数にして、引数部分にあらかじめ作成した変数を入れて行おうとしたが、
=より左側の部分は右側の内容を代入する為、思うような動きにならなかった
const setRight = obj.elm.style.right;
setRight = p.x + 'px' → obj.elm.style.right = p.x + 'px'; ←こうなるイメージだったが、
実際は、 setRight = p.x + 'px''(右側の内容がsetRightの中に代入された)
左辺に右辺の内容が代入されるのはよく考えてみたら当然であるが、
この場合、どうすればleft,topのみを変更して関数を利用できるでしょうか?
ご教示お願い致します。
コード:
変更前:
JavaScript
1 obj.setPos = (e, o={x:0, y:0}) =>{ 2 let p = pLim( pos(e, o) ); 3 obj.elm.style.left = p.x + 'px'; 4 obj.elm.style.top = p.y + 'px'; 5 if(checkAll.length == taAll.length) { 6 obj.elm.previousElementSibling.style.left = p.x - 15 + 'px'; 7 obj.elm.previousElementSibling.style.top = p.y + 15 + 'px'; 8 } 9 }; 10 112コ目 12 obj.setPos = (e, o={x:0, y:0}) =>{ 13 let p = pLim( pos(e, o) ); 14 obj.elm.style.right = p.x + 'px'; 15 obj.elm.style.top = p.y + 'px'; 16 if(checkAll.length == taAll.length) { 17 obj.elm.previousElementSibling.style.left = p.x - 15 + 'px'; 18 obj.elm.previousElementSibling.style.top = p.y + 15 + 'px'; 19 } 20 }; 21 22obj.setPos = 23~~~~~~~~~~ 24ほぼ同じ内容のものを4つ作ることになる。 25かなりの量になってしまう
変更後:
関数を作るのは一つのみで、引数のみ変更して関数を呼び出しする予定だった。
JavaScript
1//引数、setSide,setVirticalに使用する際の変数 2 const setLeft = obj.elm.style.left; 3 const setRight = obj.elm.style.right; 4 const setBottom = obj.elm.style.Bottom; 5 const setTop = obj.elm.style.Top; 6 7obj.setPos = (e, o={x:0, y:0}, setSide, setVertical) =>{ 8 let p = pLim( pos(e, o) ); 9 setSide = p.x + 'px'; 10 SetVertical = p.y + 'px'; 11 if(checkAll.length == taAll.length) { 12 obj.elm.previousElementSibling.style.left = p.x - 15 + 'px'; 13 obj.elm.previousElementSibling.style.top = p.y + 15 + 'px'; 14 } 15 }; 16 17
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。