...

View Full Version : .prototype



otnj2ee
08-23-2007, 01:15 AM
I saw two kinds of coding:

1)

var obj = new Object();

obj.addEvent=function(a, b, c){...}


2) obj.prototype.someFunc=function(){...}


My question:

Why sometimes use .prototype sometime not? or under what circumstance should use .prototype, while others not?


Thanks


Scott

GJay
08-23-2007, 09:14 AM
when you add a method to an object's prototype (whether it be 'Object' itself, 'Array', 'String', 'Number' or any of the other built-in types, or to a class you've declared yourself) it will be available to all instances of that object. Adding the method to the instance means it's only available to that instance. Some examples, I'll use a user-defined class:


var Dog = function(name) {
this.name = name;
};
var fido = new Dog('fido');

//we give 'fido' a 'bark()' method
fido.bark = function() {
alert(this.name+" says woof!");
};
fido.bark(); //and this will work

//if we try this though, we'll get an error: 'spot.bark is not a function'
var spot = new Dog('spot');
spot.bark();

//but if we add the method to the class's prototype:
Dog.prototype.bark = function() {
alert(this.name+" says Woof!");
}

//then both of these work
fido.bark();
spot.bark();

(If you run the above code as a single script, it will break and stop where I say it does, to see the 'working' code below, take out the first 'spot.bark()' line)

otnj2ee
08-23-2007, 05:23 PM
Many Thanks. --Scott



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum