求教js高手,事件对应的匿名函数是单实例的吗?

zhangh1014 2015-06-18 03:57:30
element.onclick = function(){......}

这句话,每次元素点击都会创建一个实例吗?还是单实例的?
如何证明?

另外,如果这么写:
var test = function(){......}
element.onclick = test;
这样,每次元素点击是多个实例还是单实例?
如何证明?
...全文
100 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangh1014 2015-06-18
  • 打赏
  • 举报
回复
我理解不对,外围函数是单实例的,那么它这里返回的对象也应该是单实例的
zhangh1014 2015-06-18
  • 打赏
  • 举报
回复
jslang说得很形象,一语道破天机。 KK3K2005好厉害,但稍稍好像貌似有丁点小疑问:index是一直在增加,外围的匿名函数一定是单实例的,只是onclick此处实际上是指向了return的function,而不是外围的匿名函数,因此,好像不能证明onclick指向的function是单实例的,不知道我理解是否正确。
KK3K2005 2015-06-18
  • 打赏
  • 举报
回复
element.onclick = (function(){ var index = 1; return function(){ alert(index++); } })();
天际的海浪 2015-06-18
  • 打赏
  • 举报
回复
这两种都是单例的,事件的绑定就等于函数的定义,事件触发就等于函数的调用。 函数每次调用都是重新创建一个么?当然不是,事件也是同理。

87,888

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧