前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ExtJS中的全局变量的保存和使用

ExtJS中的全局变量的保存和使用

作者头像
提莫队长
发布2019-03-01 09:58:06
2.3K0
发布2019-03-01 09:58:06
举报
文章被收录于专栏:刘晓杰刘晓杰

前阵子研究ExtJS,对于如何在Sencha Architect软件中使用全局变量伤透了脑筋。现在我一共发现了两种:

第一种:使用“window.全局变量”形式

window 对象总是存在的,你可理解其为一个浏览器窗口对象。它包含了其它所有的对象如document 和所有的全局变量。

假设有全局变量seq,那么赋值和取值操作如下:

window.seq=13; //赋值

var temp=window.seq; //取值

第二种:使用document对象中的cookie属性

在客户端 JavaScript 中,Window 对象是全局对象,所有的表达式都在当前的环境中计算。也就是说,要引用当前窗口根本不需要特殊的语法,可以把那个窗口的属性作为全局变量来使用。例如,可以只写 document,而不必写 window.document

document里面有一个对象属性cookie,可以用来保存用户储存在本地终端上的数据。

先上代码,然后解释:

代码语言:javascript
复制
        var UserId = "";
        UserName = "";
        document.cookie="user=123";                    		//赋值
        var vcookie = document.cookie;
        var arrcookie = new Array();                                //这句记为A
        arrcookie = vcookie.split(";");
        for (var i = 0; i < arrcookie.length; i++) {
            var arr_per = new Array();
            arr_per = arrcookie[i].split("=");	                //arr_per[0]存的是等号左边的值,arr_per[1]存的是等号右边的值
            if (arr_per[0].replace(" ","") == "user") {
                UserId = arr_per[1];
            }
            else if(arr_per[0].replace(" ","") == "name")	//replace函数可以去除name字符串前后的空格
            {
                UserName = decodeURI(arr_per[1]);		//decodeURI() 函数可对 encodeURI() 函数编码过的 URI 进行解码。
            }
            if(UserId !== "" && UserName !== "")
            {
                break;
            }
        }

下图是“百度一下”首页中自带的cookie值,看到格式就明白了为什么要 split(";") 和 split("=")

执行A句以后

由下图可见replace函数是必要的

两种方法都可以实现全局变量的存取,只是哪种更好不清楚

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年11月25日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档