When a child process is created (your script), it copy of its variables and current directory. So the child (your script) can change these values all it wants but the changes won't affect the parent shell, since the child is changing a copy of the original data.
As you said use
It Read and execute commands from scriptname in the current shell environment and return the exit status of the last command executed from script.