That code's correct, so you may need to restart the course from the codeschool.com landing page, while logged in; it's likely an auth cookie wasn't transferred over to the course, or it expired. Often happens if you jump straight into a course via a bookmark or browser history.

I just wanted to make sure I understood this concept correctly:
this.connectionsTo[i].postNum --> has access to postNum property
this.connectionsTo --> does not have a postNum property

Fencepost is a constructor with the specific property values listed in the challenge
Fencepost.prototype is the prototype assigned to the Fencepost constructor. Fencepost inherits from this prototype

sendRopeTo creates an instance of a fencepost that is stored in the this.connectionsto array (under the constructor)

The reason why this.connectionsTo[i].postNum works is because we're referring to a specific object of Fencepost (created by sendRopeTo), which has the postNum property by default. As prototypes can refer back to their instances and use those values, we're able to access the postNum property.

creates a function that just pushes the given Fencepost parameter (one assumes the parameter to be a Fencepost object, but, of course, as with all JavaScript, this is not enforced by the language) onto connectionsTo, which is a property of the current Fencepost object (the one on which sendRopeTo is being called)

The reason why this.connectionsTo[i].postNum works is because we're referring to a specific object of Fencepost (created by sendRopeTo), which has the postNum property by default. As prototypes can refer back to their instances and use those values, we're able to access the postNum property.

How about, given my above answers, you let me know if this is correct. hint: some bits are, some aren't quite.

I think you're on the right track, but there may still be a bit of confusion. I hope the above starts to clear it up.

Do note terminology itself can be an issue, so if it's clear it was just terminology that was off, I wouldn't worry too much about it.

I meant to say that the Fencepost constructor can access these specific properties in the prototype, as a contructor can refer to it's prototype for extra properties

Is that correct?

"The reason why this.connectionsTo[i].postNum works is because we're referring to a specific object of Fencepost (created by sendRopeTo), which has the postNum property by default. As prototypes can refer back to their instances and use those values, we're able to access the postNum property."

I think this is where I'm starting to get tripped up? I understand that sendRopeTo creates a Fencepost object stored in the array. so having connections.To[i] allows us to access one specific fencepost object, which per default already has the postNum property. Let me know if I'm missing something here.

"Fencepost inherits from this prototype"
I meant to say that the Fencepost constructor can access these specific properties in the prototype, as a contructor can refer to it's prototype for extra properties

I see. Yes, it can, although note a constructor's prototype is 1) best used for methods 2) and a constructor can access methods on its own prototype and 3) methods on its parent's or other ancestor's prototype.**

The reason why this.connectionsTo[i].postNum works is because we're referring to a specific object of Fencepost

this.connectionsTo[i] does refer to a Fencepost object, yep!

(created by sendRopeTo)

That Fencepost object, though, isn't created in sendRopeTo. It's created by whoever calls sendRopeTo:

// needs to be put in after the complete solution from the top
// of this topic.
// creating 2 Fencepost objects
Fencepost p1 = new Fencepost(0,0,1);
Fencepost p2 = new Fencepost(9,4,2);
// passing in created Fencepost objects
p1.sendRopeTo(p2);
p2.sendRopeTo(p1);

which has the postNum property by default.

Not sure if it's quite by default, but that I think just depends on what you meant.

postNum is on every Fencepost object, and its value is passed in as the 3rd argument to the constructor.

That value is assigned in the constructor via this.postNum = postNum;

As prototypes can refer back to their instances and use those values, we're able to access the postNum property.

You can in a prototype method, like in toString in the given code, access properties via this, like this.connectionsTo

A prototype doesn't really have an instance; this is referring to the caller, so better to say "an instance" or the "current object" or "current instance", or just the "caller". So, continuing from my code snippet above

console.log(p2.toString());

that call means this in toString for this code refers to the p2 Fencepost object, and hence it is p2's connectionsTo.

connectionsTo[0] refers to p1, and so connectionsTo[0].postNum refers to p1's postNum (via this.connectionsTo[i].postNum when i is 0).

Try to go through that and see if it makes sense to you, asking further if you have any more questions!

**

The last bit is a bit beyond the scope of the course, although it touches upon it, and you can see