ExtJS的namespace、js的公私有方法和属性

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>

posted @ 2011-06-10 09:34  sky7034  阅读(248)  评论(0编辑  收藏  举报
蘑菇街女装 货运专家