选择两个功能的建议

时间:2015-02-27 20:19:24

标签: javascript jquery

下面的两个jQuery代码(1)(2),有人可以告诉哪一个更好,为什么?我应该将myfunction放在顶部还是底部?我在相关主题的许多答案中都看到过。

(1)

var myfunction = function () {
  // do stuff
};

$(document).ready(myfunction);
$(window).resize(myfunction);

(2)

$(document).ready(myfunction);
$(window).on('resize',myfunction);

function myfunction() {
    // do stuff
}

如果问题没有以正确的方式提出,请原谅我。

4 个答案:

答案 0 :(得分:1)

自jQuery 1.7以来,建议使用.on()语句。像.click() .resize() .dblclick()这样的所有函数都很难为jQuery团队维护。 (它们都是碎片化的,现在它都是1个功能)

.on()是最新版本,因此这也是开发人员将要维护的版本。它不确定开发人员是否会在进一步更新中维护其他功能(参见我的示例)。

当然,他们会在即将到来的时候,但不确定多久。

答案 1 :(得分:1)

这真的是一种品味问题。我更喜欢resize之类的快捷方式绑定,而不仅仅是on,因为它可以节省一些击键次数并使代码更漂亮。

关于在哪里声明函数它在这个特定情况下(在执行方面)没有区别,因为有hoisting的东西。

就可读性而言,我建议您阅读this post,这有助于使用此功能使您的代码更加清晰。

答案 2 :(得分:1)

我会将我所有的jquery承诺包装成一个自调用函数,然后在那里做一些事情,为了不污染全局命名空间:

$(function () {
  
  function myFunction() {
    console.log("doing stuff");
  }

  $(window).on("resize", myFunction);

  myFunction();

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

另外,不要忘记JavaScript是camelCase preffered,所以myFunction而不是myfunction:)

答案 3 :(得分:0)

声明一个函数var意味着范围。在下面的示例中,函数myFunction进入ram,然后在父元素被销毁时被销毁。

myParentFunction = function(){
    var myfunction = function () {
      // do stuff
    };
}

如果它坐在Window上,则不需要范围。在运行代码之前,函数会在加载时进行解析,并且它们出现的位置并不重要。

其余的...... jquery&#34; on&#34;通常在您想要将事件作为参数时使用。否则直接分配就可以了。