1
4

1 回答 1

2

这与 eval 无关。当你说

foo();

thisinside 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 回答