Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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_Jquery_Anonymous_Onready - Fatal编程技术网

JavaScript匿名函数 这个周末我在网上读了下面的文章,我想知道大多数人是否认为这是正确的(更好的)做事方法。

JavaScript匿名函数 这个周末我在网上读了下面的文章,我想知道大多数人是否认为这是正确的(更好的)做事方法。,javascript,jquery,anonymous,onready,Javascript,Jquery,Anonymous,Onready,这不是做事情的最佳(正确)方式: $(document).ready(function() { $('#magic').click(function(e) { $('#yayeffects').slideUp(function() { // ... }); }); $('#happiness').load(url + ' #unicorns', function() { // ... });

这不是做事情的最佳(正确)方式:

$(document).ready(function() { $('#magic').click(function(e) { $('#yayeffects').slideUp(function() { // ... }); }); $('#happiness').load(url + ' #unicorns', function() { // ... }); }); $(文档).ready(函数(){ $(“#魔法”)。单击(函数(e){ $('#yayeffects').slideUp(函数(){ // ... }); }); $(“#幸福”).load(url+“#独角兽”,函数(){ // ... }); }); 这样更好:

var PI = { onReady : function() { $('#magic').click(PI.candyMtn); $('#happiness').load(PI.url + ' #unicorns', PI.unicornCb); }, candyMtn : function(e) { $('#yayeffects').slideUp(PI.slideCb); }, slideCb : function() { ... }, unicornCb : function() { ... } }; $(document).ready(PI.onReady); var PI={ onReady:function(){ $(#magic')。单击(PI.candyMtn); $(“#幸福”).load(PI.url+”#unicorns',PI.unicornCb); }, candyMtn:函数(e){ $('yayeffects').slideUp(PI.slideecb); }, slideb:function(){…}, unicornCb:function(){…} }; $(文档).ready(PI.onReady); 一个比另一个表现好吗?更容易调试


想法?注释?

第二个变量是可重用的-您可以为其他控件的其他事件重用slideCb和其他处理程序。

第二个变量是可重用的-您可以为其他控件的其他事件重用slideCb和其他处理程序。

如果您的stacktrace中包含大量匿名函数,则需要花费更多的时间找出错误发生的确切位置以及调用错误的位置。加上1秒

事件处理程序中的代码通常与处理程序注册的代码没有多大关系,因此应该位于单独的函数/模块中。加1秒

对侦听器使用匿名函数也是不好的,因为如果您必须删除此侦听器(大多数人不关心),您只能删除它们,而不必关心从代码的其他部分意外删除其他侦听器。第二个加1

将相关函数放在一个对象中并不一定是最好的。如果对不同的dom对象使用侦听器的行为,onReady函数通常是不好的


不要在意表现。侦听器通常不会被频繁调用,因为这很重要。如果它被调用,则很可能在其他地方出现问题。

如果您有一个包含大量匿名函数的stacktrace,则需要花费大量时间来找出错误的确切发生位置和调用位置。加上1秒

事件处理程序中的代码通常与处理程序注册的代码没有多大关系,因此应该位于单独的函数/模块中。加1秒

对侦听器使用匿名函数也是不好的,因为如果您必须删除此侦听器(大多数人不关心),您只能删除它们,而不必关心从代码的其他部分意外删除其他侦听器。第二个加1

将相关函数放在一个对象中并不一定是最好的。如果对不同的dom对象使用侦听器的行为,onReady函数通常是不好的


不要在意表现。听众通常不会经常被称为重要人物。如果是,很可能是其他地方有问题。

两件事:(1)这句话的措辞是“B比a好。你认为怎么样?”这就引出了问题。(2) 你不会说为什么你觉得第二个更好,尽管你说它是。仅供参考,但在jQuery的更高版本中相当于
$(document).ready(function(){…})
两件事:(1)这句话的措辞是“B比a好。你认为怎么样?”这就引出了问题。(2) 你没有说明为什么你觉得第二个更好,尽管你说它是。仅供参考,但在jQuery的更高版本中相当于
$(document).ready(function(){…})