繁体   English   中英

此代码中“()”的含义是什么[关闭]

[英]What is meaning of “()” in this code[closure]

$(document).ready(function(){
    var dash = function(){
            return{
             bindEvents: function(){
             }
            };      
    }();
window.methods = dash;
methods.bindEvents();
 });

没有“ () ”,以上代码将不起作用。 请解释为什么我们需要使用????

并且

         return{
         bindEvents: function(){
                               }
         };

工作正常。 但是如果我在return语句下面对齐花括号。 它抛出一个错误

          return
            {                  // throws an error
         bindEvents: function(){
                               }
             };

请解释。

让我们看看您在问题中提到的要点:

$(document).ready(function(){
   var dash = function(){
        return{
           bindEvents: function(){}
        };      
   }();
   window.methods = dash;
   methods.bindEvents();
});

1- 如果没有“()”,以上代码将不起作用。 请解释为什么我们需要使用????

因为这是(IIFE-立即调用的函数表达式)的语法,这意味着它是一种在文档加载后立即执行自身的表达式,所以请考虑以相同方式开发的jQuery库。

return
      {   // throws an error
        bindEvents: function(){}
      };

2- 但如果我在return语句下方对齐花括号。 它抛出一个错误

是的,编译器会警告您语法错误,因为如果将花括号向下移动到该行,则当您使用浏览器查看页面或函数时,它将自动添加; 在那里,它变成了return;

所以输出是这样的:

return;
      {   // throws an error
        bindEvents: function(){}
      };

在它下面有一个没有从它返回的object ,因此引起了问题。

它将立即执行您在此处定义的功能

function() {
 return{
  bindEvents: function(){}
  };      
}

如果没有它, dash将指向您定义的函数,使用它dash将包含函数执行结果(在这种情况下为object):

{
  bindEvents: function(){}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM