我最近一直致力于开发一款与Game Maker非常相似的小型JavaScript游戏引擎,但让人们可以在浏览器中创建基本的JavaScript游戏。每个对象的每个实例都将拥有它自己的预设方法,跑步者将迭代并执行。我试图找到一种让用户/创建者动态编辑任何方法源代码的方法。当我说'预设方法'时,我的意思是在对象/对象实例中存储在特定预设名称下的空白方法。这是一个基本的例子:
var newObject = object_add("object_name"); // Adds a new object 'blueprint' and returns the reference.
函数object_add();创建一个JavaScript对象,并为其添加一些预设方法,例如:
..还有更多
这些方法中的每一个都没有开头的代码。我需要让创建者动态更改任何方法源代码。我可以简单地使用新方法覆盖指向方法的变量,但是如何使用字符串设置方法的源代码?
我知道如下:
newObject.create = function(){textbox.innerHTML};
绝对不会工作。有什么想法吗?
非常感谢,
答案 0 :(得分:1)
看起来你想使用eval
功能,但这通常是一个坏主意。
答案 1 :(得分:0)
答案发现于:Creating functions dynamically 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.