How to associate functions with objects using JavaScript?

Q

How to associate functions with objects using JavaScript?

✍: Guest

A

Let's now create a custom "toString()" method for our movie object. We can embed the function directly in the object like this.

<script type="text/javascript">
function movie(title, director) {
   this.title = title;
   this.director = director;
   this.toString = function movieToString() {
         return("title: "+this.title+"  director: "+this.director);
      }
   }
   var narnia = new movie("Narni","Andrew Adamson");
   document.write(narnia.toString());
</script>

This produces

title: Narni director: Andrew Adamson

Or we can use a previously defined function and assign it to a variable. Note that the name of the function is not followed by parenthisis, otherwise it would just execute the function and stuff the returned value into the variable.

<script type="text/javascript">
function movieToString() {
   return("title: "+this.title+"  director: "+this.director);
   }
function movie(title, director) {
   this.title = title;
   this.director = director;
   this.toString = movieToString; //assign function to this method pointer
   }
   var aliens = new movie("Aliens","Cameron");
   document.write(aliens.toString());
</script>

This produces

title: Aliens director: Cameron

2011-08-09, 3050👍, 0💬