Показать сообщение отдельно
  #7 (permalink)  
Старый 18.02.2016, 20:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

destus,
if (!Object.assign) Object.defineProperty(Object, "assign", {
    enumerable: false,
    configurable: true,
    writable: true,
    value: function(target, firstSource) {
        if (target === undefined || target === null) throw new TypeError("Cannot convert first argument to object");
        var to = Object(target);
        for (var i = 1; i < arguments.length; i++) {
            var nextSource = arguments[i];
            if (nextSource === undefined || nextSource === null) continue;
            var keysArray = Object.keys(Object(nextSource));
            for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {
                var nextKey =
                    keysArray[nextIndex];
                var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
                if (desc !== undefined && desc.enumerable) to[nextKey] = nextSource[nextKey]
            }
        }
        return to
    }
});

function a(arg) {
    var copy = Object.assign({}, arg);
    copy.value += 2;
    return copy
}
var c = {
    name: "Название 1",
    value: 2
};
var b = a(c);
alert([b.value, c.value]);
Ответить с цитированием