Javascript动态地将函数附加到对象

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)

nnn*_*nnn 6

如果通过"将函数动态附加到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