У меня возникла проблема с объектом JS, когда значение свойства переписывается неожиданно.Непосредственно перезаписано свойство объекта JS
В приведенном ниже примере после того, как я установил css_on['color'] = 'red';
, вывод css_on
на консоль показывает правильное значение. Однако после css_off['color'] = 'blue';
по какой-то причине css_on.color
теперь также blue
.
Может кто-нибудь рассказать мне, почему это происходит? И как остановить это! Благодарю.
var css = {
'line-height': this.options.height+'px',
'width': this.options.label_width+'px'
}
var css_on = css
var css_off = css;
css_on['color'] = 'red';
console.log(css_on);
css_off['color'] = 'blue';
console.log(css_on);
'css_on' и' css_off' ссылка на тот же объект. – RobG
Итак, если вы хотите скопировать его, используйте, например, 'css_on = jQuery.extend ({}, css);'. –
Но я создал новые экземпляры с помощью 'var css_on = css;' (и для '_off'). –