对象的默认功能?

时间:2012-05-10 13:51:39

标签: javascript function object

是否可以在对象上设置默认函数,以便在调用myObj()时执行该函数?假设我有以下func对象

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

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

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

test.call();

我想简单地用test.call()替换test()。这可能吗?

1 个答案:

答案 0 :(得分:6)

返回一个函数:

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

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

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

test();

但是this指的是返回的函数(对吗?)或窗口,你必须缓存this才能从函数内部访问它({{1} }})

this._func();