Javascript: Object or Object.prototype? -


i learned prototype in javascript (not framework, native feature). got, @ least 1 of use. example:

array.prototype.mymethod = function(){    /*do super awesome*/ } var = []; a.mymethod(); 

reading on came upon example in author adds subclass method object object, doing this:

object.subclass = function(hash){/*return extended object inherits object's attributes*/} 

the goal create method resembles more object-oriented language syntax. since expected book author define such method using prototype feature question is:

  • why not use prototype?
  • isn't more risky add methods directly object rather prototype attached it?
  • are there situations in i'd prefer 1 way on other

why not use prototype?

because if prototype used subclass method available on instances of object. example, call subclass following necessary:

object.prototype.subclass = function(hash) { /* return extended object inherits object's attributes */ }; function myclass() { };  var myinstance = new myclass(); var mysubclassinstance = myinstance.subclass(); // accessible on instances 

this doesn't make sense because author wants subclass return extended instance of object. intent not create instance of parent "class" , return new sub instance instance. that's unnecessary.

by defining right on object, subclass instance can created without first creating instance of myclass:

object.subclass = function(hash) { /* return extended object inherits object's attributes */ }; function myclass() { };  var mysubclassinstance = myclass.subclass(); 

isn't more risky add methods directly object rather prototype attached it? there situations in i'd prefer 1 way on other.

  • add prototype add members instances of object.
  • add object add members object (similar idea of static members).

Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -