2

有人可以告诉我this.onSubmit以下代码中指的是什么对象吗?

(function () {
    var _d = vjo.dsf.EventDispatcher;
    var _r = vjo.Registry;

    function $1(p0) {
        return function (event) {
            return this.onSubmit(p0, event);
        };
    };
})();

如果此示例没有足够的上下文,我深表歉意。

4

3 回答 3

5

在 JavaScript 中, 的值this是动态设置的。所以要知道它的价值,你需要知道函数是如何被调用/使用的。

所以一般的答案this是指任何被设置为this执行上下文的值。

于 2012-12-01T01:57:13.937 回答
2

函数运行时绑定的任何对象。

例子:

(function() {
    ....
    function $1(p0) {
         return function (event) {
            return this.onSubmit(p0, event);
        };
    };

    var testObj = {
        foo: 'bar',
        onSubmit: function(x,y) { console.log(x,y); }
    };

    var func = $1('moep');

    func.call(testObj, 'hrhr'); // logs >> moep, hrhr
于 2012-12-01T02:00:04.897 回答
0

这里将是窗口对象。console.log(this)您可以通过添加之前的行来确认这一点。

于 2012-12-01T02:00:27.097 回答