takeopera RSSフィード

2005 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 02 | 03 | 04 | 05 | 06 | 11 | 12 |
2008 | 01 | 09 | 10 |
2009 | 01 | 02 | 03 | 06 |

2006/12/02 Sat

[]opera.defineMagicFunction 02:51 opera.defineMagicFunction - takeopera を含むブックマーク はてなブックマーク - opera.defineMagicFunction - takeopera opera.defineMagicFunction - takeopera のブックマークコメント

メモ

The mysterious Opera object

opera.defineMagicFunction(string: functionName,function: replacementFunction)

このreplacementFunctionの引数にちょっと注意。

調べてみたところ、第1引数が置き換える前の関数、第2引数windowオブジェクト(追記部分参照)、第3引数以降が関数に渡された引数となるようだ。

関数hogeに渡された引数と返り値を表示したい場合は下のようにしたらいいはず。多分。

opera.defineMagicFunction('hoge', function() {
  var f = arguments[0];
  var args = arguments.slice(2);
  opera.postError(args);
  var r = f(args);
  opera.postError(r);
  return r;
});

追記

ちゃんと調べずに一部間違ったこと書いてしまいました。先に公式な情報に当たるべきだった…。

Opera: User JavaScript: Available Methods, Events, and Properties

Opera: User JavaScript: Available Methods, Events, and Properties

上のページにちゃんと引数についても書いてあります。が、第2引数について説明してある部分

実関数にて 'this' のキーワードで言及されたオブジェクト

これがなんのことやらわからないので英語のほうも見てみました。

The object that would have been referred to by the 'this' keyword in the real function.

これを訳してみると、「実際の関数の中でthisキーワードによって参照されたであろうオブジェクト」かな?うーん分かりにくい。

多分意味するところは

function hoge() {
  var x = this;
}

このxと同じものが

opera.defineMagicFunction('hoge', function(func, obj) {
  // obj は上の x と同じ
});

第2引数として渡されるということだと思います。

トラックバック - http://orera.g.hatena.ne.jp/takef/20061202
2005 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 02 | 03 | 04 | 05 | 06 | 11 | 12 |
2008 | 01 | 09 | 10 |
2009 | 01 | 02 | 03 | 06 |