所以我开始学习javacript,我注意到函数和回调的编码约定是这样的(这是一个jQuery示例,但我到处都看到过这些):
$.getJSON('some/url.json', function(a) {
// do stuff with a here
});
来自其他语言,我通常会写上面的内容:
function myFunction(myVar){
//do stuff with myVar here
};
$.getJSON('some/url.json', myFunction());
为什么前者通常是JS中首选的写作方式,而不是[可能更具可读性]后者?
答案 0 :(得分:2)
使用第二种更明确的格式(假设您修复了评论中列出的问题)有很多充分的理由,包括:
但第一种格式,带有作为回调传递的匿名函数,简短而又甜蜜。如果您不需要重用该函数,如果它相对较短,并且如果它在您的系统中不是很重要,那么将它确切地声明在您使用它的位置非常有用。您可以避免在范围中添加另一个变量,并使其完全清楚该功能的用途。
答案 1 :(得分:1)
这不是首选方式。你可以做任何你想做的事。但是,如果您需要重用该函数,那么您需要执行第二个选项,或者以下选项,以便重用代码:
// in some accessible context/namespace
App.myCallback = function(a){
...
};
// somewhere else
$.getJSON('url', App.myCallback);
答案 2 :(得分:0)
您的第一个示例是所谓的匿名函数或块。当它们只被调用一次时使用它们。第二个例子是当你多次使用这个函数时...如果你一遍又一遍地重复匿名块,这将是一个浪费很多的打字。