私は1つのイベントウィジェットで作業していて、奇妙な振る舞いを見つけました。以下は Javascriptの代入演算子奇妙な振る舞い
は、イベントオブジェクト内部の競争の私はvar event={0:{competition:{like:false}}}
console.log(event[0].competition.like); //returns false
var cmpt=event[0].competition;
cmpt.like=true;
console.log(event[0].competition.like) //returns true
に取り組んでいたコードブロックあなたはなぜ属性の値は、[のように]、私は理解を助けることができます更新取得されています。 このイベントオブジェクトや更新されていないイベントオブジェクトを防止するにはどうすればよいですか?
私はgoogle /を調べてみましたが、それらの質問は別の問題に対処していました。
あなただけの参照ではなく、オブジェクトをコピーしています。 –
これは、javascriptオブジェクトが参照渡しであるため、競合オブジェクトを複製する必要があるように動作させるためです。 – jcubic
文字列でも数字でもない場合は、参照(ポインタ)です。 (それを指すのではなく)オブジェクトをコピーするには、prototypeが 'event [0] .competition'に設定された新しいオブジェクトを作成する' Object.create(event [0] .competition) ' – slebetman