Какая-то непонятная мне магия тут...
var mass1 = [
s = [s1, s2],
d = [d1, d2]
];
Вот правильный вариант глубокого копирования (пример и сравнение с другими решениями
jsfiddle.net/0yseqsuy):
var isArray = Array.isArray || function (arr) {
return Object.prototype.toString.call(arr) === "[object Array]";
}
var isObject = function (obj) {
return Object.prototype.toString.call(obj) === "[object Object]";
}
function cloneDeep(mas) {
var masClone = isArray(mas) ? new Array(mas.length) : {};
Object.keys(mas).forEach(function (key) {
if (isArray(mas[key]) || isObject(mas[key]))
masClone[key] = cloneDeep(mas[key]);
else
masClone[key] = mas[key];
});
return masClone;
}
Но для старых браузеров нужны полифилы Object.keys и forEach.