`
pandong8183
  • 浏览: 57473 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

关于如何编写优美的JavaScript代码之我见

 
阅读更多

如何编写出优美的JavaScript代码?我在网上一次又一次的看见这个东西,我基本都仔细看过,然后觉得这些所谓的JS优雅的优美的代码,总觉得非常不适应,今天我也来吐吐槽,不一定正确,供大家参考,我熟悉很多语言,例如java,c/c++/c#,ios,delphi,pb,我相信这些语言也是很多人会的,也熟悉其习惯,那么能不能让JS的编程手法和这些语言相同或者相似呢,答案肯定是有的,请往下看

 

我认为一个JS文件就是一个类(class),那么他的结构应该是以下

// 1.创建包名(命名空间)
// 2.导入需要的类名
// 3.构造方法
// 4.继承父类
// 5.编写方法
 

现在,就是每个段的代码实现
1.创建包名(命名空间)

namespace("pjaf.form");

//代码:
function namespace(fullNS) {
	// 将命名空间切成N部分, 比如Kmf、Soft、Ext等
	var nsArray = fullNS.split('.');
	var sEval = "";
	var sNS = "";
	for ( var i = 0; i < nsArray.length; i++) {
		if (i != 0) {
			sNS += ".";
		}
		sNS += nsArray[i];
		// 依次创建构造命名空间对象(假如不存在的话)的语句
		// 比如先创建pjaf,然后创建pjaf.form,依次下去JavaScript 的命名空间
		sEval += "if (typeof(" + sNS + ") == 'undefined') " + sNS + " = new Object();";
	}
	if (sEval != "") {
		eval(sEval);
	}
};

 2.导入需要的类名

register("pjaf.form.Field");

//代码:这个稍微复杂,里面使用了一个jquery的ajax方法,同步去获取文件并执行
function register(clazzName) {
	// 将传入的类名转化成实际文件的地址,为什么这样你懂的
	var _clazzName = clazzName;
	// 将所有.换成/
	while (true) {
		_clazzName = _clazzName.replace(".", "/");
		if (_clazzName.indexOf(".") == -1) {
			break;
		}
	}
	// 组成最终的JS详细地址
	_clazzName = _clazzName + ".js";
	
	$.ajax({
		url : _clazzName,
		dataType : 'text',
		scriptCharset : "GBK",
		async : false, //同步调用,这个非常重要!!
		cache : false,
		success : function(data) {
			// 如果到之后就直接执行
			eval(data);
		}
	});
}

 3.构造方法,创建了一个pjaf.form.Field类

pjaf.form.Field = function() {
	this.id = null;
	this.name = null;
};

4.继承父类,继承于pjaf.form.Field类

pjaf.form.TextField.inherit(pjaf.form.Field);

//代码:为所有Function增加该方法
Function.prototype.inherit = function(clazz) {
    this.prototype = new clazz();
    this.prototype.constructor = this;
    this.prototype.father = function(name) {
        f = clazz.prototype[name];
        return f.apply(this, Array.prototype.slice.call(arguments, 1));
    };
};

    注意:这里的inherit名称不要改为extends,因为在JSCompiler中是关键字,将会无法编译此JS文件

 

5.编写方法,这里重写了父类的一个方法

pjaf.form.TextField.prototype.show = function(name) {
	this.father("show", name);
	alert("这里是类pjaf.form.TextField的show:" + name);
};

    注意:这里的father名称不要改为super,因为在JSCompiler中是关键字,将会无法编译此JS文件

 

最后是示例代码,我晓得这个年头懒人多,直接放到你的项目,运行里面的test.html就是,本人测试过

0
1
分享到:
评论
1 楼 SonofGod 2012-12-07  
支持楼主!

相关推荐

    编写可靠的javascript代码测试驱动开发javascript商业软

    资源名称:编写可靠的JAVAscript代码 测试驱动开发JAVAscript商业软件内容简介:《编写可靠的Javascript代码 测试驱动开发Javascript商业软件》分为5个部分:第Ⅰ部分“奠定坚实的基础”...

    Effective JavaScript 编写高质量JavaScript代码的68个有效方法1

    《Effective JavaScript:编写高质量JavaScript代码的68个有效方法》是David Herman撰写的一本JavaScript编程指南,该书基于作者在Ecma的JavaScript标准化委员会的工作经验,深入探讨了JavaScript的内部工作机制、...

    《编写可靠的JAVASCRIPT代码 测试驱动开发JAVASCRIPT商业软件》PDF

    第Ⅲ部分“测试和编写高级JavaScript特性”描述了如何使用和测试 JavaScript语言更高级的特性。 第Ⅳ部分“测试中的特殊主题”提供了测试DOM操作的样例,还演示了用于增 强代码标准的静态分析工具的使用。第Ⅴ部分...

    使用AngularJS编写较为优美的JavaScript代码指南

    **AngularJS 编写优美JavaScript代码指南** 在前端开发领域,AngularJS 是一款非常流行的JavaScript框架,它提供了丰富的功能和工具来构建复杂的应用程序。本文将聚焦于如何使用AngularJS编写更加优雅、易于维护的...

    javascript经典特效---javascript代码自动生成.rar

    通过学习和运用以上知识点,开发者可以更加高效地编写JavaScript代码,实现各种复杂的特效,并减少重复工作。而“javascript代码自动生成.htm”文件可能提供了关于如何利用这些概念和工具的具体指导,包括实例和教程...

    很有趣的javascript编写的代码

    在压缩包中的"很有趣的javascript代码"很可能就是一个或多个这样的外部JS文件,包含了实现特定整人效果的函数和逻辑。这些代码可能包括了时间触发器(如setTimeout或setInterval),用于在特定时间点执行某些操作;...

    编写高质量javascript代码的68方法

    编写高质量的JavaScript代码对于确保软件的可维护性、性能和用户体验至关重要。以下是对"编写高质量JavaScript代码的68方法"的一些关键知识点的详细阐述: 1. **变量声明**:始终使用`let`、`const`而非`var`来声明...

    《编写高质量代码-改善JavaScript程序的188个建议》PDF

    内容全部由编写高质量的JavaScript代码的最佳实践组成,从基本语法、应用架构、工具框架、编码风格、编程思想等5大方面对Web前端工程师遇到的疑难问题给出了经验性的解决方案,为Web前端工程师如何编写更高质量的...

    编写可维护的javascript.pdf

    《编写可维护的JavaScript》向开发人员阐述了如何在团队开发中编写具备高可维护性的JavaScript代码,书中详细说明了作为团队一分子,应该怎么写JavaScript。《编写可维护的JavaScript》内容涵盖了编码风格、编程技巧...

    编写可维护的JavaScript,完整扫描版

    《编写可维护的JavaScript》向开发人员阐述了如何在团队开发中编写具备高可维护性的JavaScript 代码,书中详细说明了作为团队一分子,应该怎么写JavaScript。《编写可维护的JavaScript》内容涵盖了编码风格、编程...

    javascript实例代码集

    这些是所有编程的基石,理解它们对于编写任何JavaScript代码至关重要。 2. **DOM操作**: Document Object Model (DOM)是HTML和XML文档的编程接口。JavaScript可以用来遍历、修改或添加DOM元素,例如通过`...

    基于JavaScript实现的程序员表白爱心代码(2套)

    基于JavaScript实现的程序员表白爱心代码(2套) 基于JavaScript实现的程序员表白爱心代码(2套) 基于JavaScript实现的程序员表白爱心代码(2套) 基于JavaScript实现的程序员表白爱心代码(2套) 基于JavaScript实现的...

    [JavaScript] Effective JavaScript 编写高质量JavaScript代码的68个有效方法 (英文版)

    [Addison-Wesley Professional] Effective JavaScript 编写高质量JavaScript代码的68个有效方法 (英文版) [Addison-Wesley Professional] Effective JavaScript 68 Specific Ways to Harness the Power of ...

    以优美方式编写JavaScript代码

    JavaScript编程很多年了,写了大量的JavaScript代码,即便是我这样的经历,但我仍然还在努力地去写出更优美的 JavaScript代码,在这篇文章中,我将探索为什么写出漂亮的JavaScript代码是如此困难,如何使用...

    编写高质量代码-改善JavaScript程序的188个建议,完整扫描版

    内容全部由编写高质量的javascript代码的最佳实践组成,从基本语法、应用架构、工具框架、编码风格、编程思想等5大方面对web前端工程师遇到的疑难问题给出了经验性的解决方案,为web前端工程师如何编写更高质量的...

    JavaScript代码生成器

    JavaScript代码生成器就是一种能够帮助开发者快速生成JavaScript代码的工具,它可以极大提高开发效率,减少手动编写重复性代码的工作量。 JavaScript代码生成器通常具备以下功能: 1. 自动化模板:这些工具提供了...

    深入浅出JavaScript源代码

    这些构成了JavaScript语法的基础,是编写任何JavaScript代码的前提。 接着,深入到函数和作用域,这是JavaScript中至关重要的概念。函数可以封装代码,提高可复用性,而作用域则决定了变量的可见性和生命周期。理解...

    编写可维护的JavaScript

    《编写可维护的JavaScript》向开发人员阐述了如何在团队开发中编写具备高可维护性的JavaScript 代码,书中详细说明了作为团队一分子,应该怎么写JavaScript。《编写可维护的JavaScript》内容涵盖了编码风格、编程...

Global site tag (gtag.js) - Google Analytics