我正在努力使用Javascript。我的大多数问题都不是因为缺乏对语言的理解而产生的(好吧,那也是对我的承受)。相反,主要问题是了解什么是良好的编程/代码组织风格。
例如,我需要在页面中包含不同的实体(表单,文本区域,表格等),并根据事件(用户触发或Ajax)对其进行修改。
我的第一个想法是为每个实体定义一个类,在这些类的原型上定义方法,然后实例化将它们绑定到特定HTML id的类(隐式地或在用new实例化时),并在事件和事件之间注册处理程序。方法调用。换句话说,有点“QT式”。我很快意识到这不是微不足道的。你不能直接将对象方法注册为回调,你必须将它们包装在一个闭包中......等等。
我的另一个想法是声明一堆回调函数,没有对象,每个回调都对全局变量和DOM进行操作。快速而肮脏,没有大惊小怪。这就像您的页面只是一个大型对象,其事件在内部处理。
我能想到的每一个解决方案都让我感到极度误用了这个工具。最后,我感觉不舒服,因为我在编程经历中看到的JavaScript代码非常少,而且与我所遇到的所有语言都有很大不同。偷看我下载它的第一个东西肯定是浪费时间,因为它是压缩和/或模糊处理和/或不是“最新”与当前“良好的JavaScript实践”,所以我问你一个简单的,强大而干净的网页及其相关的javascript代码,可以快速进入正确的编程/代码布局风格。
(我正在使用jQuery,但我的问题与此无关。但是,使用jQuery的示例将是首选。)
答案 0 :(得分:3)
我有一个如何在this question中创建JavaScript应用程序的示例。摘要是:
答案 1 :(得分:3)
我学会了从阅读Douglas Crockford的JavaScript: The Good Parts来编写JavaScript。他还有a lot stuff online你可以check out。
我的基本风格是删除JavaScript的类创建机制,并通过创建带有闭包和对象文字符号的“对象”来更像Scheme。 (不确定你是否有任何关于Scheme的背景;如果没有,这种方法对你来说可能不太自然。)为了更好地解释如何做到这一点,Crockford有一篇短文here。这是一个简短的例子:
var pezDispenser = (function () {
var amount = 20;
return {
dispense: function () {
if (amount > 0) }
amount -= 1;
alert('delicious pez!');
} else {
alert('no more pez!');
}
}
};
}());
pezDispenser.dispense();
我发现这是一种非常强大而灵活的方法。
Crockford还提供了语言here和here的一般风格指南。
希望这有帮助。
答案 2 :(得分:0)
这个问题很久以前就已经存在了。
但我喜欢这个页面:42 Javascript best practices (Opera)