繁体   English   中英

动态设置 JavaScript 对象的方法源

[英]Dynamically Setting a JavaScript Object's Method's Source

我最近一直在研究一个不错的 JavaScript 小游戏引擎,它的工作原理很像 Game Maker,但可以让人们在浏览器中创建基本的 JavaScript 游戏。 每个对象的每个实例都有自己的预设方法,运行器将遍历并执行这些方法。 我试图找到一种方法让用户/创建者动态编辑任何方法源代码。 当我说“预设方法”时,我的意思是存储在对象/对象实例中特定预设名称下的空白方法。 这是一个基本示例:

var newObject = object_add("object_name"); // Adds a new object 'blueprint' and returns the reference.

函数 object_add(); 创建一个 JavaScript 对象,并为其添加一些预设方法,例如:

  • 创建
  • 破坏

.. 还有很多

这些方法中的每一个都没有代码可以开始。 我需要让创建者动态更改任何方法源代码。 我可以简单地用一个新方法覆盖指向该方法的变量,但是如何使用字符串设置方法的源代码?

我知道这样的事情:

newObject.create = function(){textbox.innerHTML};

肯定行不通。 有任何想法吗?

非常感谢,

  • 担。

看起来您想使用eval函数,但这通常是个坏主意。

答案在: Creating functions dynamic in JS

这是答案(从另一页复制)。

好吧,你可以使用 Function,就像在这个例子中一样:

var f = new Function('name', 'return alert("hello, " + name + "!");');
f('erick');
//This way you're defining a new function with arguments and body and assigning it to a variable f. You could use a hashset and store many functions:

var fs = [];
var fs['f1'] = new Function('name', 'return alert("hello, " + name + "!");');
fs['f1']('erick');
//Loading xml depends if it is running on browser or server.

谢谢,@CBroe https://stackoverflow.com/users/1427878/cbroe

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM