javascriptオブジェクトに関数を動的に取り付ける方法:例えば、動的な添付ファイルの関数がattach()の場合、関数fnをonject objに次のように付けることができます。 。Javascript動的に関数をオブジェクトに結びつける
attach(
obj,fn,{
alert(1)
}
)
function attach(obj,fnName,code)
{
obj[fnName] = code;
}
javascriptオブジェクトに関数を動的に取り付ける方法:例えば、動的な添付ファイルの関数がattach()の場合、関数fnをonject objに次のように付けることができます。 。Javascript動的に関数をオブジェクトに結びつける
attach(
obj,fn,{
alert(1)
}
)
function attach(obj,fnName,code)
{
obj[fnName] = code;
}
もしあなたが、あなたがすでに示されてきた構文はほとんど右である「オブジェクトのプロパティとして機能-オブジェクトを追加」を意味「javascriptオブジェクトに動的に機能を付ける」こともできます。これは、それがどうあるべきかです:あなたはこのようなあなたのattach()
機能を呼び出すことができます意味
var fnName = "testFunc";
obj[fnName] = function() { alert("Test function"); };
// or
obj.testFunc = function() { ... };
// or
obj[fnName] = nameOfFunctionDefinedElsewhereInCurrentScope;
:
// attach an anonymous function:
attach(obj, "newFunctionName", function() { alert(1); });
// attach a function defined elsewhere
attach(obj, "newFunctionName", someFunction);
注:attach()
機能は本当に実際には、まったく労力を節約しないことただ(これをしない)あなたところで...
を入力するための複数の文字を与え、あなたはcode
として渡したいパラメータはコードの文字列がある場合は、この操作を行います。
var code = "alert(0);";
obj[fnName] = new Function(code);
詳しい情報は:関数の定義は添付と仮定https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function
、あなたはこのようにそれを呼び出す必要があります:あなたはそれを呼び出した
attach(obj, fnName, function(){ alert(1); });
方法が無効な構文です。
obj[fnName] = function(){ alert(1); });
おそらくOPは動的に「コードを生成したいです' –
EDIT:あなたは気づいたかもしれないとしても
は、それはあなたがあなたの1行の関数定義を使用して同じことを行うことができるので、非常に便利な機能ではありません他のポストの機能(コード)のソリューションがよりよく表示されます。私はそのコンストラクタについて知らなかった。
可能な解決策は次のようになります。
Object.prototype.attach = function(name,code) {
this.name = function() {
eval(code);
};
}
evalは間違いなく時間を作る電子の複雑さが増した:) –
彼らはすでにこことして、定義されてきた場合は、関数オブジェクトとしてそれらを添付することができます:Javascript: better way to add dynamic methods?
ます。また、新しいFunctionコンストラクタを使用することができますCreating functions dynamically in JS
ここで、evalと新しい関数コンストラクタの違いについて説明します。Are eval() and new Function() the same thing?警告、evalを使用()と新しいFunctionコンストラクタとして は、ここのような論争を作成し、個体数で(ある程度)非難されています:Legitimate uses of the Function constructorここ
は詳細情報であり、 evalの:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval
ここでは、新しいFunctionコンストラクタの詳細については次のとおりです。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function
'String型の例としてcode'は、私が探していたまさにである、THX :) – munyul