Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 评估后保持上下文_Javascript - Fatal编程技术网

Javascript 评估后保持上下文

Javascript 评估后保持上下文,javascript,Javascript,是否可以得到与调用window.func.foo()相同的结果;​使用eval时?这与eval无关。当你说 foo(); 此在foo内部始终是全局对象(除非函数是使用bind创建的,请参见下文)。您有几个选择: 您可以使用bind //won't work on IE8 - will have to shim `bind` var foo = eval('func.foo.bind(func)'); 或者,您可以在调用函数时使用call var foo = eval('func.foo'


是否可以得到与调用
window.func.foo()相同的结果;​使用eval时?

这与eval无关。当你说

foo();
在foo内部始终是全局对象(除非函数是使用
bind
创建的,请参见下文)。您有几个选择:

您可以使用
bind

//won't work on IE8 - will have to shim `bind`
var foo = eval('func.foo.bind(func)'); 

或者,您可以在调用函数时使用
call

var foo = eval('func.foo');
foo.call(func);



是的,正如nbrooks所说的,应该不鼓励使用eval

找不到_evalJS的源。Actionscript的外部接口源显示_evalJS实际上是在调用js代码来保存它的上下文。有人知道它是怎么做的,或者把它的来源联系起来吗?@有人-不知道。以上应该是在函数调用中控制
这个
的最简单方法。就像我说的,我没有访问父对象(func)的权限。
var foo = eval('func.foo');
foo.call(func);