It's a concept thats hard to grasp.
If you want to try a few examples to reinforce your understanding try this.
1, Define an object (int, string, map, list, table ...)
2, Call a sub with the object( in #1 ) as the parameter.
3, Change the object in the sub (a = a + 1 etc)
4, Return the object from the sub
5, Compare the original to the returned value. If they are the same then it was passed by reference, if not it was passed by value.
Dim a As Int = 1
if addOne(a) <> a then
Log("passed by value")
else
Log("passed by reference")
end if
Sub addOne(x As Int) As Int
x = x + 1
return x
End Sub