<commit_before>@page can.Construct.super
@parent can.Construct

Allows you to call the base function via a `_super` attribute.<commit_msg>Super documentation<commit_after>@page can.Construct.super
@parent can.Construct

Allows you to call the base function via a `this._super` attribute.
Let's say we have a simple Todo construct:

	var Todo = can.Construct({
        init : function(text) {
            this.text = text;
        },

        toString : function() {
            return 'TODO: ' + this.text;
        }
    });

    var trash = new Todo('Take out trash');
    console.log(trash.toString()); // -> TODO: Take out trash

With the *super* plugin it is now easy to create an extended version of this Todo construct and in each method
be able to access the overwritten method using `this._super`:

	var BetterTodo = Todo.extend({
		init : function(text, status) {
			this._super(text);
			this.status = status || 'Not done';
		},

		toString : function() {
			return '[' + this.status + ']: ' + this._super();
		}
	});

	var newTrash = new BetterTodo('Take out trash', 'Done');
    console.log(newTrash.toString()); // -> [Done] TODO: Take out trash

If you want to pass all arguments use [apply](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply):

	var EvenBetterTodo = BetterTodo.extend({
		init : function(text, status) {
			this._super.apply(this, arguments);
			this.is_evenbetter = true;
		}
	});
{'fraction_non_alphanumeric': 0.12586445366528354, 'fraction_numerical': 0.0, 'mean_word_length': 3.306547619047619, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4192949', 'n_tokens_mistral': 455, 'n_tokens_neox': 426, 'n_words': 139}