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

标签 javascript object methods

如何将函数动态附加到 javascript 对象。例如:如果动态附加函数是 attach(),那么我应该能够将函数 fn 附加到 onject 对象,如下所示。

attach(
     obj,fn,{
                  alert(1)
            }
      )


function attach(obj,fnName,code)
{
    obj[fnName] = code;
}

最佳答案

如果“将函数动态附加到 javascript 对象”是指“将函数对象添加为对象属性”,那么您已经展示的语法几乎是正确的。这是应该的:

var fnName = "testFunc";
obj[fnName] = function() { alert("Test function"); };
// or
obj.testFunc = function() { ... };
// or
obj[fnName] = nameOfFunctionDefinedElsewhereInCurrentScope;

这意味着您可以像这样调用您的 attach() 函数:

// 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

关于Javascript动态地将函数附加到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9644246/

相关文章:

javascript - Canvas 饼图中的标签

javascript - 在 Javascript 中访问对象的属性

javascript - 使用谷歌浏览器中的检查元素功能来抓取网站

jQuery 检测 .find (' ' ).text() 是否已定义

java - 如何在 JUnit 测试中从抽象类创建对象

java - 通过继承改变方法参数

algorithm - 具有重复的间隔数组的联合中的第 n 个最小元素

javascript - Meteor - 从 Lib 文件夹访问方法

javascript - HTML5 可在边界内拖动

javascript - Wordpress 定制器、FS 和 :after CSS