Ext的namespace和java的namespace是同一个概念。Ext在对类进行定义的时候如果先前的包是不存在的则不能进行类定义。 具体说明在代码中都有注释。
代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>04_namespace.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> <script type="text/javascript" src="../ext4/ext-all-debug.js"></script> <script type="text/javascript"> Ext.onReady(function() { Ext.namespace("com.tiantian.test");//声明一个namespace,命名空间 com.tiantian.test.User = function(config) {//定义一个对象 //对象中的所有公共属性和方法都要使用this关键字来定义,如定义属性name,则有this.name="" if (config) {//当指定了config对象的时候执行该语句 this.address = config.address;//通过参数给属性赋值 } else { this.address = ""; } //定义一个公共属性 this.name = "张三"; //定义一个私有属性 var name2 = "私有属性"; this.email = "test@test.com";//默认属性 this.now = function() { alert(new Date().toLocaleString()); } //定义带有返回值的公共方法 this.getName = function() { alert(getName2()); return this.name; } var getName2 = function() { //对于私有变量是不能使用this关键字进行访问的 return name2; } }; var user = new com.tiantian.test.User({address: "湖南"}); //新建对象后再往其中添加属性 Ext.apply(user,{ name: "zhangsan",//这个name属性会覆盖前面默认的那个name username: "zhangsanusername", password: "zhangsanpassword" }); //alert(user.name); //alert(user.address+" "+user.email); //alert(user.now); //user.now();//调用对象的方法 var n = user.getName(); alert(n); }); </script> </head> <body> This is my HTML page. <br> </body> </html>