0

新しいコンテキスト、つまり、スコープに存在しない定義された特定の単語を含む関数を評価しようとしています。関数を文字列として定義していれば十分簡単ですが、次のように通常の関数リストでこれを行う機能を提供したいと思います。

var funcs = {
  first: function() { return 'yayaya'; },
  second: function() { return 'okokok' + keyword; },
  ...
};

じゃあ後で:

function Thing () {};

for (func in funcs) {
  var definition = funcs[func].definition();
  var keyword = "NOW I AM THE KEYWORD";
  var actual_func_with_keyword_defined = eval(definition);
  Thing.prototype[func] = actual_func_with_keyword_defined;
}

私が欠けているのは、関数のソースを返す definition() 関数または同等のものです。これはJavaScriptで可能ですか?

4

3 に答える 3

2

JSの標準的な方法はtoString()、関数を呼び出すことです。そのようです:

function myFun() {}

myFun.toString() // gives "function myFun() {}",
                 // potentially with white space differences
于 2009-09-16T06:13:42.903 に答える