1 に答える
2
これはevalとは何の関係もありません。あなたが言う時
foo();
this
fooの内部は常にグローバルオブジェクトになります(関数が-で作成された場合を除きますbind
-以下を参照)。いくつかの選択肢があります。
この値は次のように「事前設定」できますbind
//won't work on IE8 - will have to shim `bind`
var foo = eval('func.foo.bind(func)');
または、this
を使用して関数を呼び出すときに手動で値を設定できますcall
var foo = eval('func.foo');
foo.call(func);
そして、はい、nbrooksが言ったように、evalの使用は推奨されるべきではありません。
于 2012-12-24T16:11:35.117 に答える