タグ

callbackに関するwangeruのブックマーク (3)

  • JavaScriptで、メソッドをコールバックとして渡す方法(コールバック関数でthisをbindさせる方法) · DQNEO日記

    Home Subscribe var obj = { name : 'pikachu', say : function(){ alert('I am ' + this.name); } } setTimeout(obj.say, 1000); // => 'I am'とだけ表示される。 これは期待通りに動いてくれません。 コールバックとしてメソッドを渡した場合、それはオブジェクトと切り離された単なる関数(メソッドではない)となってしまうのです。 つまり下記と等価なのです。 setTimeout( function(){alert('I am ' + this.name);} , 1000); 関数がオブジェクトと切り離されているため、このthisはグローバルオブジェクト(windowオブジェクト)を指してしまっており、'I am'とだけ表示されます。 ではどうすればよいでしょうか? bin

    JavaScriptで、メソッドをコールバックとして渡す方法(コールバック関数でthisをbindさせる方法) · DQNEO日記
  • callbackってなんですか。

    fadeOut([speed], [callback]) 各要素の透明度を操作して、表示されている要素をフェードアウトさせます。 ~ 中略 ~ また、効果が完了した際に呼び出される関数を第二引数に指定することも出来ます。 なので、 function fadeOutFinish() { alert("終わり!"); } みたいに関数を作って fadeOut([speed], fadeOutFinish) と2番目の引数に指定すると、 fadeOut 関数が、フェードアウト処理を終えた後に fadeOutFinish 関数をコールしてくれます 関数側が、特定のタイミングでコールして情報を返してくれるので、 コールバック(関数)といわれます

    callbackってなんですか。
  • CMLog :: JavaScriptでCallback関数を引数にする関数を上手に使う

    JavaScriptでCallback関数を引数にする関数を上手に使う jQueryの$.getとか多用していると非同期性のためにコーディングで詰まったり、たまにする。詰まったときにはググって解決するのだが、安直に「非同期を回避しよう」と考えるのは良くないかも。具体的には例えば、JavaScriptとコールバック地獄 - Yahoo! JAPAN Tech Blogにあるような問題、 「0」を出力する 1秒待つ 「1」を出力する 1秒待つ 「2」を出力する を console.log(0); setTimeout(function(){ console.log(1); setTimeout(function(){ console.log(2); }, 1000); }, 1000); みたいにネストしたくないって程度で非同期に走るな、上手に書けばいいだけって話。 ブクマですでに指摘されてい

  • 1