以下を使用して、JavaScript で動的に関数を作成できます。
var MyClass = new Function("console.log('Hello World!');");
しかし、それを行うと、ID は「匿名」に設定されます。デバッグ目的で、このような関数に ID を付けたいと思います。これは、そのような関数 (クラス) のインスタンスを console.log するときに表示される ID です。それを行う方法はありますか?
以下を使用して、JavaScript で動的に関数を作成できます。
var MyClass = new Function("console.log('Hello World!');");
しかし、それを行うと、ID は「匿名」に設定されます。デバッグ目的で、このような関数に ID を付けたいと思います。これは、そのような関数 (クラス) のインスタンスを console.log するときに表示される ID です。それを行う方法はありますか?
create
これを行うには、次のような関数を作成します。
var create = (function() {
var id = 0;
return function(f) {
return eval('(function id' + (id++) + (f + '').substr(8) + ')' );
};
})();
var a = create(function() { alert(0); });
var b = create(function() { alert(1); });
alert(a); // function id0() { alert(0); }
alert(b); // function id1() { alert(1); }
a(); // 0
b(); // 1
短い答え:いいえ。
より長い答え:不可能、設定さえできませんfunction.name
。Function
正直なところ、コンストラクターは動的に作成される一時的なオンザフライ関数用であるため、要点さえわかりません。それらを viariables に配置すれば完了です。
クラスを作成しているために名前を付けたい場合は、構文を使用します
function MyClass(...) {
いずれにせよ、一部の開発者ツール (Chrome Web インスペクタなど) はそれについて非常に賢く、MyClass
次のように定義しても表示されることに注意してください。
var MyClass = function() {...