Может кто-нибудь, пожалуйста, помогите мне с этим.
local function TestPrice()
local obj1 = require("myObj")
local obj2 = require("myObj")
obj1:setPrice(30)
obj2:setPrice(40)
print(obj1.price) -- this prints '40'. Setting price on obj2 changes the price in obj1
end
и
-- myObj.lua
local M = {
price = -1;}
local function _setPrice(self, newprice)
self.price = newprice
-- todo other stuff
end
M.setPrice = _setPrice
return M
Я думал, что установив self в качестве параметра, он устанавливает область действия. Почему вызов этой функции в obj2 обновляет значение obj1?