lua的table定义是在堆上面创建内存的吗?

定义一个local table = {value = 0}
然后使用table.insert插入到另外一个table2中 重复插入2次
这时候table2中有3个元素 令table.value=2
然后通过table2[1].value table2[2].value table2[3].value这种形式打印出来的值居然都成了2
去了函数体外面后打印也是2 难道table2中实际存的是table的地址? 然后该内存还是在堆上创建的?如果是地址或者引用 那为什么出了函数体这个内存没有被回收掉
我有点懵逼了!