浅谈JavaScript中模仿C#编码方式

开发 前端
下面说的是我的JavaScript开发的一种写代码方式,个人比较喜欢C#的风格。所以尽量的去模仿C#的编码方式,可能大家各有喜好,这里大家各抒己见吧。

首先是JavaScript代码底层部分:

  1. var jmz = {};                           //全部代码的存放对象  
  2. jmz.demo = {};                          //在jmz下引申出一个demo存放对象,  
  3. //以上两个就类似于.NET里面的NameSpace,下面的方法编写也模仿C#的编码方式  
  4. jmz.o = {};                             //用来存放全部的全局变量 

这里定义3个东西,所有的静态,方法及变量都从jmz下面引申出来。

◆好处:不管你代码写的有多少行,全部只占用一个全局变量,这样你跟其他程序员合作是就不会有任何的变量名冲突。

◆坏处:如果写到后面调用代码会过长,但也有个处理方式,这里提示下with这个。

jmz.o是用来存放你要在网页中添加的全局变量,当然大家可以自由扩展优化,有好的点子希望能联系我共同探讨。

接下来是两个典型例子,一个模拟C#静态方法,一个模拟C#的类。

静态方法:

  1. jmz.demo.HelloWorldA = function(str) {  //模拟C#的静态方法调用方式  
  2. alert(str);  
  3. }  

这个与原来的JS函数一摸一样,调用方式也类似于C#的静态调用方式。可用于一些非常常用的方法,比如获得对象,获得字符串长度,给对象添加事件等等。

类写法:

  1. jmz.demo.HelloWorldB = function() {  
  2. var _data = "";                     //类中的全局私有变量,前缀“_”来与方法内的变量进行区分  
  3. function Process(str) {             //类中的私有方法,私有方法编写方式头字母大写  
  4. if (str.length > 0) _data = str;  
  5. else return false;  
  6. return true;  
  7. }  
  8. function Show() {  
  9. alert(_data);  
  10. }  
  11. this.process = function(str) {       //类中的公共方法,供外部调用,头字母小写  
  12. return Process(str);  
  13. }  
  14. this.show = function() {  
  15. Show();  
  16. }  

这个类写法个人感觉还不错,自己给自己定义编写代码时候的规范用来区分私有方法与公共方法、私有变量与共有变量。

好了上面的代码框架写完了,下面来个实际调用的吧!

  1. jmz.Bind("load", function() {  
  2. jmz.demo.HelloWorldA("Chinajmz:HelloWorldA!");//静态方法调用  
  3. jmz.o.helloWorldB = new jmz.demo.HelloWorldB();//初始化类并存放到jmz.o的对象中  
  4. if (jmz.o.helloWorldB.process("Chinajmz:HelloWorldB!") == true) {//对象中公共方法调用  
  5. jmz.o.helloWorldB.show();  
  6. }  
  7. }); 
 

此处用了我先前的JS事件绑定方法,有兴趣的可以去查看下。

效果:

    效果A 效果B

【编辑推荐】

  1. Javascript中最常用的25个经典技巧
  2. 6月编程语言排行榜:JavaScript转正在即
  3. 非常全面的实用JavaScript开发工具列表
  4. Google专家:JavaScript是网站性能的致命克星
  5. 痛陈Javascript的缺点
责任编辑:彭凡 来源: cnblogs
相关推荐

2009-08-13 18:36:29

C#数组工作方式

2009-05-26 16:33:48

PythonC#Run As

2009-09-07 03:23:40

C# Main方法

2009-07-31 13:48:34

C# eval()函数

2009-02-05 15:32:23

接口委托

2012-03-08 15:03:49

JavaScript

2011-09-21 10:56:31

C#结构

2009-08-20 18:30:33

C# ReaderWr

2009-05-08 09:46:37

微软C#集合对象

2009-08-19 17:12:18

C# Connecti

2009-08-12 11:24:25

C# String对象

2009-08-07 11:26:53

C#数组结构

2009-08-31 09:37:09

C# Employee

2011-09-26 10:50:16

JavaScript

2009-08-26 13:15:38

C#选择控制

2009-08-26 15:46:01

C#匿名类型

2009-08-14 17:58:05

C#接口方法

2009-08-25 16:16:43

C# oledbcon

2009-09-02 15:41:21

C# HTTPWebR

2009-08-20 10:24:52

C#开发WinForm
点赞
收藏

51CTO技术栈公众号