私はJavascriptには新しく、電子メールのWebサイト上の電子メールのリストで「クリック」機能コールを相殺しているChrome拡張機能を書いています。私の問題は、私がオフセットしている関数が参照によって渡されていることで、最終的にはすべてが単一のクリックイベントを指し示すことになります。機能の "深い"コピーを作成する方法 - Javascript
マイコード:
//Offsets the email links
for (var i = emails.length - 1; i >= amountToRemove; i--) {
var a = emails[i];
var b = emails[i - amountToRemove];
a.addEventListener('click', (x) => {b.click(); x.stopPropagation(); return false;})
}
そして問題の少し精緻化: すなわち。 amountToRemoveは2で、iは10です。 click()イベントの最初の2回の "シフト"はうまくいくが、3番目のシフトでは、配列内の9番目(最後)と7番目のオブジェクトのclick()関数は、意図したものではない同じ関数を指している。 私は無駄にインターネットが推奨する
JSON.parse(JSON.stringify(object))
だけでなく、他の方法を使用して、関数の「ディープコピー」を作ってみました。
私の質問は、同じオブジェクトを指し示さず、各クリックイベントが最終的に同じシングルクリックを指し示すように、.click()関数の "深い"コピーを作成する方法ですイベント?