Maybe it helps if we first widen our view, in order to then narrow it again and see the double-dual as a special case.
So let's start with functions (any functions, for now) $f:X\to Y$. As a concrete example, take $X=Y=\mathbb R$. That is, we are dealing with real-values functions of a real argument: $f:\mathbb{R} \to \mathbb{R}$. Examples are
- the identity $\mathrm{id} = x\mapsto x$,
- the constant functions $\mathrm{const}_c = x\mapsto c$, and
- the trigonometric functions $\sin$ and $\cos$.
The normal way to look at functions is to think of them as encoding the operation. For example, it is a property of the function $\sin$ that it maps the number $\pi$ to the number $0$:
$$\sin(\pi) = 0$$
But another view is that the result of applying the function $\sin$ to the number $\pi$ gives the number $0$, and it is that applying that has all the logic. So you have one function $\mathrm{apply}$ that takes two arguments, a real function and a real number, and assigns them another number:
$$\mathrm{apply}(\sin,\pi)=0$$
Now looking at this form, we see that $\sin$ and $\pi$ are on equal footing. Both are merely arguments of the $\mathrm{apply}$ function. You recover the original sine function by “pre-inserting” $\sin$ as first argument of apply (this is known as currying):
$$x\mapsto \mathrm{apply}(\sin,x)$$
But given that both arguments are on equal footing, you may just as well pre-apply the second argument instead:
$$f\mapsto \mathrm{apply}(f,\pi)$$
We might consider this the application of $\pi$ to the function $f$. Thus $\mathrm{apply}(\sin,\pi)$ could equivalently be written as
$$\pi(\sin) = 0$$
In this manner, we can define a set of “number functions”
$$\{f\mapsto \mathrm{apply}(f,c) \mid c \in\mathbb{R}\} \tag{1}$$
So now, from each real number $c \in \mathbb{R}$, we get a function that maps real functions to real numbers. Note that just like the function $\sin$ is not determined just by the value $\sin(\pi)$, but by the values it takes for all real numbers, similarly, the function $\pi$ is not determined just by the value it takes at $\sin$, but by the values it takes for all real functions. That is, we not only have $\pi(\sin)=0$, but also $\pi(\cos)=-1$, $\pi(\mathrm{id})=\pi$ and $\pi(\mathrm{const_c})=c$.
Note also that the set of real functions
$$\mathcal F := \{f : \mathbb R \to \mathbb R\} \tag{2}$$
forms an $\mathbb R$-vector space under pointwise addition $f_1 + f_2 = x \mapsto f_1(x) + f_2(x)$ and scalar multiplication $cf = x \mapsto cf(x)$.
It is easily determined that the “number functions” in (1) are linear functions on $\mathcal F$; that is, they live in the dual space
$\mathcal F^*$.
However, the set in (1) is only a proper subset of the dual space of $\mathcal F$ in (2) because it doesn't include the constant function $f\mapsto 0$ (as there is no real number that is mapped to $0$ by all real functions). Indeed, that example shows that (1) is not even a vector subspace of $\mathcal F^*$ because it does not include the zero element.
We have, however, an injection into that dual, as we can identify each number by looking only at the function values. The easiest choice is to apply each number to the identity function (that returns the number itself), but even if we did not have that available (as will be the case below), we could e.g. look at the functions that are $1$ for exactly one number, and $0$ for all others; with those functions, we can uniquely identify the number by just noting which of those functions give a value of $1$.
Now let's look instead at a vector space $V$ over a field $K$, and at linear functions $V\to K$, that is, members of the dual $V^*$. Again, we can do the same game as above, and for each vector, we get a function mapping members of $V^*$ to the dual of $V^*$, which is the double dual of $V$.
However, now that we have only linear functions, we get more than above: The function that maps vectors to members of the double dual can easily be shown to be linear itself. And again, we can construct a set of functions in $V^*$ that uniquely identifies the vector: Choose a basis $\{b_i\}$ in $V$, and then take the set of linear functions $f_i$ that map $v = \sum_i\alpha_i b_i$ to $\alpha_i$. Since a vector is uniquely identified by its basis coefficients, this proves that the map $V\to V^{**}$ is injective: You can uniquely identify the vector by the values $v(f_i)=\alpha_i$.