evalの使用は推奨されておらず、このリンクも読んでいます。 Set Variable inside Eval (JavaScript)Javascriptの "eval"で実行されるコードからの変数へのアクセス
しかし、これは私がしたいことです。テキストボックスにコードがいくつかあるとします。だから私はそのテキストを取り、そのコード内のすべてのグローバル変数、関数、オブジェクトを調べなければなりません。 私の考えは、コードをネームスペースにラップし、それを評価してから、ネームスペースのプロパティを反復して結果を得ることでした。しかし、evalが正常に実行されても、そこに定義されている変数にはアクセスできません。これを実現するには、より優れたソリューションや他の方法がありますか?
http://jsfiddle.net/DbrEF/2/ - これはここのフィドルです。
"var code"は実際には任意のコードである可能性があります。私はそれをするのは安全ではないと知っていますが、私は別の状況のためにそれが必要です。 おかげで無事に
window.onload = function(){
'use strict';
//use strict forces to run code in "strict mode"
//use strict prevents eval from
//contaminating the immediate scope
//let's test with "foo"
var foo = 'lol';
//now code has "foo" but using "use strict"
//makes code in eval stay in eval
//note that at the last of the code, foo is "returned"
var code = 'var foo = {name: "Spock",greeting: function() {return "Hello " + foo.name;}}; foo';
//store eval'ed code in evalO
var evalstore = eval(code);
console.log(evalstore); //code in eval stays in here, which is "inner foo"
console.log(foo); //"outer foo" is unharmed and daisy fresh
};
使用はevalを使用して上の
close voter - どのようにローカライズされていますか? –