0

私はこのWebにかなり慣れていないので、次のようなサーバーへの呼び出しがいくつかあります。

$.when.apply($, serverRequests).then(function () {
    // update the UI on the page
    // remove overlay
});

したがって、ページ部分のUIの更新は機能します。しかし、私がやりたいのは、サーバー要求が発生している間にオーバーレイを追加することです。そこで、unshiftを使用してserverRequests配列にメソッドを追加してみました。これによりオーバーレイが追加されることを期待して、後で//removeオーバーレイ部分でメソッドを削除できるようにしました。

        var addOverlay = function () {
            console.log("--------------");
            console.log(this);
            console.log(_this);
        };
        serverRequests.unshift(addOverlay);

_this。$el.find( "#mypage")を使用してオーバーレイを追加しようとすると、問題が発生していました。そこで、画面にログを記録してみました。上記のaddOverlay()関数では、画面に何も出力されません。しかし、私がこれを行う場合:

var addOverlay = console.log("hello world");
serverRequests.unshift(addOverlay);

これは機能します。ここでの違いは何ですか?前もって感謝します!

4

1 に答える 1

0
   var addOverlay = function () {
       console.log("--------------");
       console.log(this);
       console.log(_this);
   };

ほぼ等しい

   function addOverlay () {
         console.log("--------------");
         console.log(this);
         console.log(_this);
  }

代わりに、

     serverRequests.unshift(addOverlay);

関数を呼び出す必要があります、

    serverRequests.unshift(addOverlay());

ここもまた、

var addOverlay = console.log("hello world");
serverRequests.unshift(addOverlay);

関数を作成しておらず、直接呼び出しconsole.logているため、コンソールにログインするため、機能します。ここでは、ログインhello worldしてから、をaddOverlayconsoleに保存しています。returnconsole.log

于 2013-03-25T03:27:30.043 に答える