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 に答える