問題
ユーザーがテキストコードエディターで次のようなコードを記述できるようにしています。
var Player = function(){
this.x = 0;
this.y = 0;
this.width = 32;
this.height = 64;
}
Player.prototype.run = function(){
this.x++;
}
質問
eval()
?を使用してこのコード (任意の JavaScript) を実行したい それを変数か何かに保存して、それをループして html エンティティを作成できるようにします。PSEUDO CODEの例:
loop through varables // loop through the entities that the user created.
print varable_name // print the name of varable ("Player")
print varable.width // Print the varable entitiy ("32");
いくつかのサンプルコード:
for (var name in this) {
variables[name] = name;
variables[name]=this[name]
}
function maskedEval(scr){
var mask = {};
for (p in this)
mask[p] = undefined;
// execute script in private context
(new Function( "with(this) { " + scr + "}")).call(mask);
}
これを動的に行う方法はありますか?または、これを行うより良い方法はありますか?私がやろうとしていることを理解していただければ幸いです。誰かが私を助けてくれることを願っています。
ありがとう ;)