Jin*_*iel 4 javascript methods object
如何动态地将函数附加到javascript对象.例如:如果动态附件的函数是attach(),那么我应该能够将函数fn附加到onject obj,如下所示.
attach(
obj,fn,{
alert(1)
}
)
function attach(obj,fnName,code)
{
obj[fnName] = code;
}
Run Code Online (Sandbox Code Playgroud)
如果通过"将函数动态附加到javascript对象"意味着"将函数对象添加为对象属性",那么您已经显示的语法几乎是正确的.应该是这样的:
var fnName = "testFunc";
obj[fnName] = function() { alert("Test function"); };
// or
obj.testFunc = function() { ... };
// or
obj[fnName] = nameOfFunctionDefinedElsewhereInCurrentScope;
Run Code Online (Sandbox Code Playgroud)
这意味着您可以attach()
像这样调用您的函数:
// attach an anonymous function:
attach(obj, "newFunctionName", function() { alert(1); });
// attach a function defined elsewhere
attach(obj, "newFunctionName", someFunction);
Run Code Online (Sandbox Code Playgroud)
注意:该attach()
功能实际上根本不会节省任何费用,实际上它只是为您提供更多字符来键入...
顺便说一句(但不要这样做),如果要传递的参数code
是一串代码,请执行以下操作:
var code = "alert(0);";
obj[fnName] = new Function(code);
Run Code Online (Sandbox Code Playgroud)
更多信息:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function