2つの異なるシナリオで使用するためにcss値をオブジェクトに保存しています。
styles = {
on: { left:10, top:20 },
off: { left:0, top:30 }
};
これを使用する最初の方法は、単純なマウスオーバー効果です。
$nav.hover(
function() {
$(this).css(styles.on);
},
function() {
$(this).css(styles.off);
}
);
ただし、他の用途では、アニメーションを実行しているため、やなどの追加の(css以外の)プロパティが必要ease
ですonComplete
。styles
理想的には、オブジェクトを複製して、次のように新しいプロパティをオブジェクトに追加できるようにしたいと思います。
var anim = styles;
anim.ease = Power3.easeInOut;
anim.onComplete = function() {/*stuff*/};
これは2回目の使用では問題なく機能しますが、残念ながら、値による参照を保存するため、元のstyles
変数にも新しいプロパティが追加され、メソッドがcss値としてetcを.css()
割り当てようとします。ease
元のオブジェクトに影響を与えずに、ソースオブジェクトをすばやく複製して、新しいプロパティを追加するにはどうすればよいですか?
Javascriptが参照渡しできるかどうかに関する議論を知っています(JavaScriptで値渡し参照渡しのようなものはありますか?、JavaScriptは参照渡しまたは値渡し言語ですか?)、私は知りませんそれについて話し合いたい...