Default function on an object?

function, javascript, object

Solution

return a function:

function func(_func) {
    this._func = _func;

    return function() {
        alert("called a function");
        this._func();
    }
}

var test = new func(function() {
    // do something
});

test();

but then `this` refers to the returned function (right?) or window, you will have to cache `this` to access it from inside the function (`this._func();`)

function func(_func) {
    var that = this;

    this._func = _func;

    return function() {
        alert("called a function");
        that._func();
    }
}

Problem

Is it possible to set a default function on an object, such that when I call `myObj()` that function is executed? Let's say I have the following `func` object ``` function func(_func) { this._func = _func; this.call = function() { alert("called a function"); this._func(); } } var test = new func(function() { // do something }); test.call(); ``` ​I'd like to replace `test.call()` with simply `test()`. Is that possible?

Original source

Related problems