У меня есть все oop и объект blueprint . На каждой итерации я делаю копию объекта светокопии и меняю свойство options
, но окончательный результат неверен. Вот код
var combinations = [
"10,2",
"10,3",
"10,4",
"11,2",
"11,3",
"11,4",
"12,2",
"12,3",
"12,4"
];
var blueprint = {
'options': [],
// other properties here, like this:
/*
'name': '',
'price': '',
'files': []
*/
};
$.each(combinations, function(index, item){
var obj = blueprint;
obj.options = item.split(',');
console.log(
item, // ok
obj.options, // ok
obj // wrong obj.options!
);
// call a function with my object
// myFunc(obj);
});
Вот Скрипка, показывающая проблему (Я попытался использовать внутренний фрагмент StackOverflow: внутренняя консоль дает правильный результат, консоль браузера все еще показывает неправильный результат поэтому я предпочитаю внешнюю скрипку)
Я мог бы использовать var obj = JSON.parse(JSON.stringify(blueprint))
, чтобы избежать объекта, переданного по ссылке, но это далеко от идеала
Любое решение, пожалуйста?