How to create multiple gameObjects by code?

I created a little sprite in the editor called lightpink and assigned it to a little script that runs movements. How do I proceed to create more of that object in a control script?

public class SpawnObjects : MonoBehaviour {

    private List<GameObject> pinks;
    // Use this for initialization
    void Start () {
        pinks = new List<GameObject>();
    }
	
	// Update is called once per frame
	void Update () {
        CreateNewPinks();
    }
    private void CreateNewPinks()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            //Magic
        }
    }
}

You keep a reference to a Prefab GameObject and instantiate a copy of it.

public class SpawnObjects : MonoBehaviour {

     public GameObject pinkPrefab;
     private List<GameObject> pinks;
     // Use this for initialization
     void Start () {
         pinks = new List<GameObject>();
     }
     
     // Update is called once per frame
     void Update () {
         CreateNewPinks();
     }
     private void CreateNewPinks()
     {
         if (Input.GetKeyDown(KeyCode.Space))
         {
             GameObject newPink = Instantiate(pinkPrefab, Vector3.zero, Quaternion.identity) as GameObject;
            pinks.Add(newPink);
         }
     }
 }