Javascript 评估';幕后黑手?

Javascript 评估';幕后黑手?,javascript,function,eval,Javascript,Function,Eval,我听说当我这样做的时候: <a onclick='foo()'></a> 在幕后,它生成了一个匿名函数,或者一个eval'd函数。。。?我很困惑,因为我确实有一个函数foo,那么额外的代码在哪里呢 我能得到一些解释/澄清吗?是的,有。它生成一个匿名函数,将body设置为引号中包含的内容(因此执行时它将调用您的foo()) 当您在函数中放置断点并在命中堆栈跟踪时可以观察到这一点 更新 一些幻觉:(),你的函数名是foo还是foo?我在后面看到了:函数onclick(e

我听说当我这样做的时候:

<a onclick='foo()'></a>

在幕后,它生成了一个匿名函数,或者一个eval'd函数。。。?我很困惑,因为我确实有一个函数
foo
,那么额外的代码在哪里呢


我能得到一些解释/澄清吗?

是的,有。它生成一个匿名函数,将body设置为引号中包含的内容(因此执行时它将调用您的
foo()

当您在函数中放置断点并在命中堆栈跟踪时可以观察到这一点

更新


一些幻觉:(),

你的函数名是
foo
还是
foo
?我在后面看到了:函数onclick(event){foo();}但他怎么知道它属于a.click而不是div.click??匹配在哪里?我找不到,它是内部存储的。在调试工具中看不到这一点。然而,Chrome在浏览器中提供了一个“事件监听器”选项卡,您可以在其中查看某个元素上的所有监听器。浏览器知道它所属的位置,因为这是它的工作。您看到的是内联函数定义的一种方便、可读的表示形式。您知道它属于哪里,因为它与用户共享这些知识;)