跟燕青一起学Windows8应用开发:使用WinJS自定义Javascript的名字空间

         在跟燕青一起学Windows8应用开发:使用WinJS自定义Javascript类一文中,笔者已经讲述了如何使用WinJS定义Javascript的类,那么在本篇博客中,笔者将讨论如何使用WinJSWinJS.Namespace.define函数定义名字空间(Namespace)。

         名字空间对于熟悉C/C++Java等高级语言的人来说是非常熟悉的。它的主要好处在于避免不同源代码之间变量、类名等名字冲突。优秀的Javascript代码,也需要对自己的代码命名进行管理。非常棒,WinJS也提供了这种管理机制!跟燕青一起学Windows8应用开发:使用WinJS自定义Javascript一文中,笔者已经定了PeopleMan两个类,但它需要做两件事情:

l  将它用名字空间包装

l  让它在其他Javascript代码中可见。

 

本篇博客以此话题进行展开,看看名字空间是如何搞定我们的需求的?

 

例子依然使用Study Metro App项目,并且通过图1,图2,图3创建一个People类,图4,图5,图6搞定Man类。

 

打开Study Metro App项目,鼠标右键js文件夹,依次选择Add子菜单àNew Item…子菜单,如图1所示。

1

 

依次选择Javascrip菜单àJavascript File菜单,在Name中输入People.js文件名,再点击Add按钮,如图2所示。

2

 

People.js中定义People类,如图3所示。

3

 

鼠标右键js文件夹,依次选择Add子菜单àNew Item…子菜单,如图4所示。

4

 

依次选择Javascrip菜单àJavascript File菜单,在Name中输入Man.js文件名,再点击Add按钮,如图5所示。

5

 

Man.js中定义Man类,如图6所示。

 

6

 

在定义好People类和Man类之后,我们需要将它加入到default.html中,如图7所示。

7

 

运行一下,看看是什么情况?

8

没错,对于Man而言,People是局部类定义,Man是无法看见的,那如何解决呢?

 

让我们看看本篇博客的标题!没错,名字空间可以解决此问题:-)

 

微软的WinJS.Namespace.define函数轻松的搞定了我们的麻烦,图9显示了它优雅的简洁性!

9

 

到这里,Man类看上去还有两个问题:

l  如何使用带有名字空间的People类?

l  如何将自己也加入到MySpace的名字空间内(People现在被定义在MySpace的名字空间内)?

 

不着急,先看看图10的实现。

10

 

非常简单吧!仅仅在People类的签名加上MySpace的修饰就搞定了People的引入。

 

 

你还在想什么?哦,是不是对再次定义MySpace感觉有些奇怪。是不是感觉它定义后会将People类从MySpace空间冲掉?

 

真的是这样吗?o(_)o 哈哈

 

这个就当作本篇博客的作业题吧!

 

【参考】

1.         跟燕青一起学Windows8应用开发:创建HTML5 Metro应用程序

2.         跟燕青一起学Windows8应用开发:安装Visual Studio 2011

3.         跟燕青一起学Windows8应用开发:安装Windows8操作系统

4.         跟燕青一起学Windows8应用开发:用CSS文件妆点你的应用

5.         跟燕青一起学Windows8应用开发:使用HTML+CSS自适应水平方向分辨率

6.         跟燕青一起学Windows8应用开发:使用HTML+CSS自适应垂直方向分辨率

7.         跟燕青一起学Windows8应用开发:使用HTML+CSS制作居中布局

8.         跟燕青一起学Windows8应用开发:使用HTML+CSS制作三角形

9.         跟燕青一起学Windows8应用开发:使用HTML+CSS制作Bubbles

10.     跟燕青一起学Windows8应用开发:使用WinJS自定义Javascript

 

 

Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.