'这'匿名函数中的关键字

时间:2012-12-01 01:54:01

标签: javascript this anonymous-function

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

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

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

如果没有足够的上下文附加到此示例,我道歉。

3 个答案:

答案 0 :(得分:5)

在JavaScript中,动态设置this的值。因此,要了解它的价值,您需要知道如何调用/使用该函数。

因此,通用答案是this指的是设置为执行上下文的this值的任何内容。

答案 1 :(得分: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

答案 2 :(得分:0)

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