【问题标题】:Default function on an object?对象的默认功能?
【发布时间】:2012-05-19 02:39:48
【问题描述】:

是否可以在对象上设置默认函数,以便当我调用 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() 替换test.call()。这可能吗?

【问题讨论】:

标签: javascript function object


【解决方案1】:

返回一个函数:

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

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

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

test();

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

function func(_func) {
    var that = this;

    this._func = _func;

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

【讨论】:

  • 这很有帮助。只是为了大声疾呼,这就是我最终使用它的方式:jsfiddle.net/TkZ6d/9 再次感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多