I have a class similar to the one below. How do I call my init
method when the object is created? I don't want to have to create an instance of my object then call initialize like I do below.
var myObj = new myClass(2, true); myObj.init(); function myClass(v1, v2) { // public vars this.var1 = v1; // private vars var2 = v2; // pub methods this.init = function() { // do some stuff }; // private methods someMethod = function() { // do some private stuff }; }
The constructor method is a special method of a class for creating and initializing an object instance of that class.
Constructor. The constructor method is a special method for creating and initializing an object created with a class .
Instantiating a Class When you create an object, you are creating an instance of a class, therefore "instantiating" a class. The new operator requires a single, postfix argument: a call to a constructor. The name of the constructor provides the name of the class to instantiate.
NB. Constructor function names should start with a capital letter to distinguish them from ordinary functions, e.g. MyClass
instead of myClass
.
Either you can call init
from your constructor function:
var myObj = new MyClass(2, true); function MyClass(v1, v2) { // ... // pub methods this.init = function() { // do some stuff }; // ... this.init(); // <------------ added this }
Or more simply you could just copy the body of the init
function to the end of the constructor function. No need to actually have an init
function at all if it's only called once.
There is even more smooth way to do this:
this.init = function(){ // method body }();
This will both create method and call it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With