我是JavaScript的新手.我理解这个语言的许多概念,我一直在阅读原型继承模型,而且我正在用越来越多的交互式前端东西吹口哨.这是一种有趣的语言,但我总是被回调意大利面关闭,这是很多非平凡互动模型的典型特征.
对我来说一直以来都很奇怪的是,尽管可读性噩梦是JavaScript嵌套回调的嵌套,但在很多示例和教程中我很少看到的一件事是使用预定义的命名函数作为回调参数.白天我是一名Java程序员,并且放弃了关于企业名称的陈规定型单元代码单元我喜欢用一种具有强大功能的IDE选择的语言来享受的是使用有意义的,如果长,名称可以使代码的意图和含义更加清晰,而不会使实际生产变得更加困难.那么为什么不在编写JavaScript代码时使用相同的方法呢?
考虑到这一点,我可以提出支持和反对这一观点的论据,但我对该语言的天真和新颖性使我无法得出任何结论,为什么这在技术层面上是好的.
有这么多现代浏览器显示出比以前更快地执行JavaScript代码的能力,我没有看到使用匿名回调可能获得的任何微不足道的性能获得是必要的.看来,如果您处于使用命名函数是可行的情况(可预测的行为和执行路径),那么就没有理由不这样做.
那么有什么技术原因或陷阱我不知道这使得这种做法如此普遍吗?
javascript coding-style callback anonymous-function code-readability
以下假设是否准确?
1)立即执行
(function(){
})();
Run Code Online (Sandbox Code Playgroud)
2)执行文件就绪
$(document).ready(function(){
});
Run Code Online (Sandbox Code Playgroud)
3)准备好文件的简写
$(function(){
});
Run Code Online (Sandbox Code Playgroud)
4)准备文件的替代速记,以避免交叉脚本冲突
(function($) {
})(jQuery);
Run Code Online (Sandbox Code Playgroud) 我知道.on()存在jQuery,.bind()不应该在将来使用,考虑到我有一个大于或等于1.7的jQuery版本.
我想知道的是:将匿名函数或命名函数附加到使用的事件处理程序之间是否有任何区别.bind()?
例:
// Anonymous function
$(".warning").bind("click", function(){
alert("Hello");
});
// Named function
$(".warning").bind("click", foo);
function foo(){
alert("Hello");
}
Run Code Online (Sandbox Code Playgroud)
想象一下,我的页面中有100个div班级warning.该函数.bind()将使用匿名函数将新函数附加到每个处理程序,但它与JavaScript和jQuery内部的命名函数完全相同吗?
谢谢.