English 中文(简体)
为什么将匿名功能界定为一种理由?
原标题:Why define an anonymous function and pass it jQuery as the argument?

I m 依靠从主干.中精彩的百分法。 在该法中,主干法都包含在通过 j子的匿名功能中:

(function($) {
  // Backbone code in here
})(jQuery);

在我自己的主干法典中,我刚刚在大庆组织准备的活动中总结了我的所有法典:

$(function(){
  // Backbone code in here
});

第一种办法的用意是什么? 这样做会产生匿名功能,然后立即执行, j子作为功能理由通过,有效地确保 $子是 object子。 难道这是唯一的一点,即保证酒类的价格必须达到美元,或者是否有其他理由这样做?

最佳回答

你所显示的两条法典在何时和为何执行时有很大的不同。 两者并非相互排斥。 他们没有达到同样的目的。

JavaScript Modules


(function($) {
  // Backbone code in here
})(jQuery);

这是一种“Java模块”模式,以立即援引功能加以实施。

该法典的目的是为你的法典提供“机动性”、“隐私和资本”。

执行这项职能由电话<编码>(jQuery)括号立即援引。 穿透母体是为了向全球变量提供当地范围。 这有助于减少对<代码><>$变量进行检索的间接费用,并在某些情况下使小型托管人能够更好地压缩/优化。

立即援引职能就立即执行。 职能定义一旦完成,职能即予履行。

jQuery s "DOMReady" function

这是“DOMReady”职能的主要部分:。 http://api.jquery.com/ready/


$(function(){
  // Backbone code in here
});

jQuery s "DOMReady" function executes when the DOM is ready to be manipulated by your JavaScript code.

Modules vs DOMReady In Backbone Code

它是在“高能红树”功能中界定你的后继器法的坏形式,有可能损害你的应用业绩。 直到OMD装满并准备被操纵为止,这项职能才没有被召唤。 这就是说,在你确定目标之前,你至少要等过一次再等到浏览器。

更可取的做法是,在OMReady职能之外界定你的后遗物体。 除其他外,我更愿意在贾瓦语模块模式内这样做,以便我能为我的法典提供资本和隐私。 我倾向于使用“再利用模块”模式(见上文第一个环节),以提供我在模块之外需要的参照标准。

By defining your objects outside of the DOMReady function, and providing some way to reference them, you are allowing the browser to get a head start on processing your JavaScript, potentially speeding up the user experience. It also makes the code more flexible as you can move things around without having to worry about creating more DOMREady functions when you do move things.

即便你在其他地方界定了背井离乡的物体,你仍有可能使用红树功能。 原因是,许多落后国家需要以某种方式操纵OM。 为此,你需要等到人力部准备就绪为止,因此,你需要利用人力司的职能,在确定申请后开始申请。

你们可以在网上找到这方面的大量例子,但在此,利用模块和OMRReady功能,非常基本地执行:



// Define "MyApp" as a revealing module

MyApp = (function(Backbone, $){

  var View = Backbone.View.extend({
    // do stuff here  
  });

  return {
    init: function(){
      var view = new View();
      $("#some-div").html(view.render().el);
    }
  };

})(Backbone, jQuery);



// Run "MyApp" in DOMReady

$(function(){
  MyApp.init();
});
问题回答

作为次要的副手,以美元为理由向匿名职能收取费用,使这一职能在当地产生费用,如果将美元职能称为批量,则这种费用对业绩的影响不大。 这是因为“javascript”首先搜索当地变量的范围,然后渗透到窗户范围(通常是生活费用)。

它确保了您在该关闭区内的<always use $,即使使用了$.noConflict(

如果没有这种关闭,你就应该使用<代码>j。 Query,而不是$

It is to avoid a potential conflict of the $ variable. If something else defines a variable named $, your plugin may use the wrong definition

Refer to http://docs.jquery.com/Plugins/Authoring#Getting_Started 详情

两者都使用。

你在“Qu”中自行援引职能,防止图书馆冲突,并确保“Qu”能够像你预计的那样获得。

并且,只有经过人力部装满后,才需要采用read法:

(function($) {
    $(function(){
          //add code here that needs to wait for page to be loaded
    });

    //and rest of code here
})(jQuery);




相关问题
selected text in iframe

How to get a selected text inside a iframe. I my page i m having a iframe which is editable true. So how can i get the selected text in that iframe.

How to fire event handlers on the link using javascript

I would like to click a link in my page using javascript. I would like to Fire event handlers on the link without navigating. How can this be done? This has to work both in firefox and Internet ...

How to Add script codes before the </body> tag ASP.NET

Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...

Clipboard access using Javascript - sans Flash?

Is there a reliable way to access the client machine s clipboard using Javascript? I continue to run into permissions issues when attempting to do this. How does Google Docs do this? Do they use ...

javascript debugging question

I have a large javascript which I didn t write but I need to use it and I m slowely going trough it trying to figure out what does it do and how, I m using alert to print out what it does but now I ...

Parsing date like twitter

I ve made a little forum and I want parse the date on newest posts like twitter, you know "posted 40 minutes ago ","posted 1 hour ago"... What s the best way ? Thanx.

热门标签