$(document).ready(function(){
var dash = function(){
return{
bindEvents: function(){
}
};
}();
window.methods = dash;
methods.bindEvents();
});
如果没有“()”,上述代码无效。请解释为什么我们需要使用????
以及
return{
bindEvents: function(){
}
};
工作正常。但如果我在返回语句下面对齐大括号。它会引发错误
return
{ // throws an error
bindEvents: function(){
}
};
请解释。
答案 0 :(得分:2)
让我们看看你在问题中提到的要点:
$(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语句下方对齐大括号。它会抛出错误
是的,编译器会警告语法错误,因为如果你将大括号向下移动到该行,那么当你使用浏览器查看你的页面或你的函数然后它做了什么时,它会自动添加一个{{ 1}}所以它变成;
。
所以输出类似于:
return;
下面有一个return;
{ // throws an error
bindEvents: function(){}
};
,它不会从它返回,因此会导致问题。
答案 1 :(得分:0)
它会立即执行你在那里定义的功能
function() {
return{
bindEvents: function(){}
};
}
没有它dash
将指向您定义的函数,dash
将包含此案例对象中函数执行的结果:
{
bindEvents: function(){}
}