Тема: AHK: Объекты в аргументе функций
Здравствуйте. Произошёл троллинг. Или чертовщина. Называйте как хотите.
Просьба объяснить, какого лешего творит автохоткей и как передать объект в функцию, без последствий его изменения...
Есть вот у нас код.
Переменная obj не является глобальной.
В функции func нет никаких ByRef.
obj := []
obj.abc := 5
msgbox % obj.abc
func(obj)
msgbox % obj.abc
func(obj)
{
obj.abc := 6
}
Вопрос какого-ж чёрта изменяется объект? Ладно подумал я, может быть это такое уникальное свойство объекта (о котором я не слышал ни одного упоминания)
Немного изменил код.
1) Сделал аргумент функции отличным от объекта (ну на всякий случай)
2) Сделал копию объекта, который передаётся в функцию.
3) Сделал функцию вроде как локальной
obj := []
obj.abc := 5
msgbox % obj.abc
temp_obj := obj
func(temp_obj)
msgbox % obj.abc
func(var)
{
local
var.abc := 6
}
И это не помогло! Результат не изменился. Исходный объект всё равно изменяется -_-