• constructor

Provides a way to easily use the power of prototypal inheritance without worrying about hooking up all the particulars yourself. Use can.Construct.extend to create an inheritable constructor function of your own.


In the example below, Animal is a constructor function returned by can.Construct.extend. All instances of Animal will have a speak method, and the Animal constructor has a legs property.

var Animal = can.Construct.extend({
    legs: 4
}, {
    init: function(sound) {
        this.sound = sound;
    speak: function() {

You can make instances of your object by calling your constructor function with the new keyword. When an object is created, the init method gets called (if you supplied one):

var panther = new Animal('growl');
panther.speak(); // "growl"
panther instanceof Animal; // true


There are two plugins available to help make using can.Construct even simpler.

  • can.Construct.super allows you to easily call base methods by making this._super available in inherited methods.
  • can.Construct.proxy creates a static callback function that sets the value of this to an instance of the constructor function.