javascript面向对象编程规范

原创 2006年06月13日 17:26:00

javascript在语言上的灵活性导致了javascript脚本一直以来很难被复用,但笔者认为这并不完全是javascript自身的问题,web开发人员在开发中没有遵循一定的规范也是很重要的原因,当然为javascript制定一个公认的完整的规范几乎是不可能的,不过在面向对象这个特定的领域,制定一个相对可用的规范是可以的。

对于笔者制定的以下规范,有几点需要说明:首先,为了避免对象间可能出现的交叉影响,不引入继承的概念;其次,为了降低规范的复杂性,不使用包导入的方法引用类库,而保留html标记引用的方法。

//根命名空间和子命名空间
var figcn={};//重复定义命名空间会清空该命名空间内的所有代码,所以根命名空间的命名最好跟公司或项目代号相关,最好不要使用com、cn等命名,这跟java的包命名方式是有区别的。
figcn.io={};
//类
figcn.util=function(){};
//带构造函数的类
figcn.util=function()
{
if(arguments.length==0)
    this.name="default";
else
    this.name=arguments[0];
};
//类的静态字段
figcn.util.name="figcn.util";
//类的静态函数
figcn.util.showmsg=function(){alert(arguments[0]);};
//类的成员字段
figcn.util.prototype.classname="util";//可以在类的成员函数中以this.classname引用
figcn.util.prototype.namespace="figcn";
//类的成员函数
figcn.util.prototype.getFullName=function()
{
return this.namespace+"."+this.classname;
};
figcn.util.prototype.showFullName=function()
{
alert(this.getFullName());
};

 

//实例化类
var ut=new figcn.util();
//调用类的成员函数
ut.showFullName();
//引用类的成员字段
alert(ut.classname);
alert(ut.name);
//调用类的静态函数
figcn.util.showmsg("ut.showmsg");
//引用类的静态字段
alert(figcn.util.name);

附录:javascript代码调试器
jsDebugger.hta
<html>
<title>JavaScript Debug Tool</title>
<script src="figcn.js"></script>
<script src="figcn.io.js"></script>
<body>
<div>
<input type=button value=Run onclick="run()">
<input type=button value=Refresh onclick="location.reload()">
<input type=button value=Save onclick="save()">
<input type=file onchange="loadfile(this.value)" name=f>
<span id=spanx></span>
</div>
<div>
<textarea cols=100 rows=40 id=txt></textarea>
</div>
<script>
function run()
{
 eval(document.all.txt.value);
}
function save()
{
 document.all.spanx.innerText="Saving...";
 if(document.all.f.value=="")
  figcn.io.File.save(document.all.txt.value,figcn.DateTime.toString()+".txt");
 else
  figcn.io.File.save(document.all.txt.value,document.all.f.value);
 document.all.spanx.innerText="Saved.";
}

function loadfile(path)
{
 document.all.txt.value=figcn.io.File.load(path);
}

</script>
</body>
</html>

引用文件一:
figcn.js
var figcn={};
//----DateTime类----------------
figcn.DateTime=function(){};
figcn.DateTime.toString=function()
{
    var d=new Date();
    var year=d.getYear();
    var month=d.getMonth()+1;if(month<10) month = "0" +month;
    var day =d.getDate();if(day<10)day="0"+day;
    var hour=d.getHours();if(hour<10) hour="0"+hour;
    var minute=d.getMinutes();if(minute<10) minute ="0" +minute;
    var second=d.getSeconds();if(second<10) second ="0" +second;
    var x=year+month+day+hour+minute+second;
    return x;
}

引用文件二:
figcn.io.js
figcn.io={};
//----File类----------------
figcn.io.File=function(){};
figcn.io.File.load=function(path)
{
 var fso, oTextStream,s;
   var ForReading = 1;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   oTextStream = fso.OpenTextFile(path, ForReading);
 s=oTextStream.ReadAll();
   oTextStream.Close();
   oTextStream=null;
   fso=null;
   return s;
};
figcn.io.File.save=function(txt,path)
{
 var fso, tf;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   tf = fso.CreateTextFile(path, true);
   tf.Write(txt) ;
   tf.Close();
};

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

javascript面向对象编程

  • 2016-06-06 14:45
  • 1.55MB
  • 下载

javascript面向对象编程

  • 2015-07-07 16:37
  • 1.55MB
  • 下载

Javascript面向对象编程(二):构造函数的继承

本文介绍的是,对象之间的”继承”的五种方法。比如,现在有一个”动物”对象的构造函数。   function Animal()   {     this.species = "动物";    } 还有...

javascript面向对象编程

  • 2015-07-07 15:42
  • 1.55MB
  • 下载

javascript面向对象编程.pdf

  • 2013-10-16 23:07
  • 2.25MB
  • 下载

[探讨]JavaScript面向对象编程

JavaScript是一个类C的语言,他的面向对象的东西相对于C++/Java比较奇怪,但是其的确相当的强大,本文主要从一个整体的角度来说明一下JavaScript的面向对象的编程。这篇文章主要基于E...

JavaScript 面向对象编程

  • 2014-01-03 10:13
  • 293KB
  • 下载

JavaScript面向对象编程

  • 2013-07-31 09:31
  • 328KB
  • 下载

Javascript面向对象编程(三):非构造函数的继承

Javascript面向对象编程(三):非构造函数的继承 作者: 阮一峰 日期: 2010年5月24日 这个系列的第一部分介绍了"封装",第二...

Javascript面向对象编程

  • 2013-04-09 17:15
  • 1.11MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)