Question: The below doesnt work and im struggling to work out why....

```
function CommentHandler() {

    var Text;
}

var myCommentHandler = new CommentHandler();

myCommentHandler.prototype.SayHello = function () {

    document.write('Hello World');

}

```

I get the error : 'myCommentHandler.prototype is undefined'

I just cant see why? I have declared a variable called myCommentHandler and copied in the object CommentHandler then Im trying to access the protoype of it and assign a function but I cant...Anyone know why?

Answer: 
The prototype belongs to the *class*, not the *instance*:

```
CommentHandler.prototype.MyFunction = ...

```

However you can also access the prototype via the instance's `constructor` property:

```
myObj.constructor.prototype.MyFunction = ...

```

This will of course add that function to *every* instance of your CommentHandler.

If instead you only wanted to add that function to that *one* instance, you'd do:

```
myObj.MyFunction = ...

```

Note that in none of these variants would it be possible for `MyFunction` to access your private variable `Text`.

This is the compromise forced by the prototype inheritance model - variables and methods must be public (e.g. `this.Text`) if they're to be accessed from outside, and in this case functions declared in the prototype are effectively "outside".

The alternative (using closure-scoped variables and methods) seems more natural to OO programmers, but makes inheritance much harder.
`myCommentHandler` *does not* have a prototype, because it is an instance. `CommentHandler` *does* have a prototype that can be modified. I am guessing you want to edit the object after initializing, and can do so like this:

```
myCommentHandler.SayHello = function() {
    document.write('Hello World');
}

```

Here is a good explanation of prototypes and object oriented programming in javascript with many examples: <http://mckoss.com/jscript/object.htm>