[英]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.