0

問題

ユーザーがテキストコードエディターで次のようなコードを記述できるようにしています。

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);
}

これを動的に行う方法はありますか?または、これを行うより良い方法はありますか?私がやろうとしていることを理解していただければ幸いです。誰かが私を助けてくれることを願っています。

ありがとう ;)

4

1 に答える 1