您好、欢迎来到现金彩票网!
当前位置:秒速快三计划 > 属性闭包 >

重复创建函数对象 闭包的问题

发布时间:2019-05-18 13:54 来源:未知 编辑:admin

  /* 当给这个函数传递一个链接(作为函数中的参数 - linkRef -)时,

  无论什么时候调用 addGlobalQueryOnClick 函数,都会创建一个新的内部函数(通过赋值构成了闭包)。从效率的角度上看,如果只是调用一两次addGlobalQueryOnClick 函数并没有什么大的妨碍,但如果频繁使用该函数,就会导致创建许多截然不同的函数对象(每对内部函数表达式求一次值,就会产生一个新的函数对象)。

  上面例子中的代码没有关注内部函数在创建它的函数外部可以访问(或者说构成了闭包)这一事实。实际上,同样的效果可以通过另一种方式来完成。即单独地定义一个用于事件处理器的函数,然后将该函数的引用指定给元素的事件处理属性。这样,只需创建一个函数对象,而所有使用相同事件处理器的元素都可以共享对这个函数的引用:

  /* 当把一个链接(作为函数中的参数 - linkRef -)传递给这个函数时,

  链接的 - href - 中,然后返回 true,以便单击链接时定位到由

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  如果只是调用一两次addGlobalQueryOnClick 函数并没有什么大的妨碍,但如果频繁使用该函数,就会导致创建许多截然不同的函数对象(每对内部函数表达式求一次值,就会产生一个新的函数对象)。

  我的问题是 它怎么就可以共享那个函数对象了,为什么上面的就会创建很多个,这是一个什么机制追答上面的采用的匿名函数,所以对于每一个linkRef都会创建这样一个匿名函数出来

  下面这个,为什么能共享的话,那不是很明显吗,forAddQueryOnClick()被定义在最外层,相当于一个全局变量,怎么会不能共享呢追问为什么每次都会创造一个匿名函数出来呢 匿名函数其实也应该是有名字的吧

  ,为什么上面的就会创建很多个,追答既然是匿名函数,自然就没有名字了

  每次都会执行这一段,自然每次都会创建了咯追问匿名函数其实也是有名字的 你学过java就知道

http://isaegil.net/shuxingbibao/20.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有