Тема: AHK: Объединить объекты
Я пытался реализовать Object.assing из JS, раньше не особо заморачивался, но сейчас хочу решить одну проблему, я не получаю нужный результат:
class Object
{
assign(target, sources*)
{
target := Object.clone(target)
for i, arr in sources
{
for key, value in arr
{
target[key] := (IsObject(value) && !value.base.IsArray) ? Object.clone(value, target[key]) : value
}
}
return target
}
clone(obj)
{
cloned := obj.clone()
for i, key in obj
{
if IsObject(key)
{
cloned[i] := Object.clone(key)
}
}
return cloned
}
}
obj1 := {a: {a: 1}}
obj2 := {a: {b: 2}}
obj3 := {b: 1}
test := Object.assign(obj1, obj2, obj3) ; {"a": {"b": 2}, "b": 1}
; Ожидаемым результатом было: {"a": {"a": 1, "b": 2}, "b": 1}
Хотя.. Данный код обрабатывается точно так же и в JS, получается мне нужно что-то типо deepAssign.

