javascript变量、作用域、命名空间

来源:未知 责任编辑:责任编辑 发表时间:2015-03-01 01:36 点击:

javascript变量主要分为两类:
I.   全局变量
II.  局部变量(函数内的变量)

I.   全局变量: 定义在方法体外地所有变量都是全局变量, 还有即使在方法体内使用的变量, 但是未用var关键字声明的也都是全局变量。
ll.  局部变量: 定义在方法体内的、 使用var关键字声明的变量。 (即使跟全局变量名一样, 他也会覆盖全局变量。)


注:
 全局变量就是在当前页面起作用, 一个页面当中的iframe也不管用, 只在一个页面当中有效。
 如果JS代码很多的时候, 我们都要引用JS脚本文件, 但是有可能出现两个脚本当中的全局变量名是一样的, 这会出现错误。 因为面对这些问题JS不会报错, 所以我们需要使用命名空间来解决这些冲突。
javascript命名空间:
      random.js
[javascript]
// 通过 ID 获取 Element 对象 
function $(id) { 
    return document.getElementById(id); 

 
// 显示对应 ID 的对象的节点类型名字 
function myMethod(id) { 
    alert($(id).nodeName); 

 
<span style="color:#cc0000;">// 这是对外的接口 
window['myNamespace']= {} 
window['myNamespace']['$'] = $; 
lt;/span> 
上面这段代码有两个方法, 红色的部分就是所谓的命名空间,为上面说是所谓的命名空间? 因为不是上面新的一种机制或者技术。 如果仔细观察会发现
window['myNamespace'] = {}
其实就是一个定义对象的语法, 我们在window对象里添加了一个属性(属性名:myNamespace), 这个属性就是一个对象。 第二行代码
window['myNamespace']['$'] = $;
window['myNamespace']就是一个对象, 我们要给这个对象再添加一个属性['$'], 这个属性就是方法$, 所以我们引入random.js文件之后, 在页面想要使用random.js中的$()方法的时候, 使用window.myNamespace.$就可以了。 也可以直接用myNamespace.$, 省略了window。

当然还有很多实现命名空间的办法, 还可以直接用一个对象包住(把所有的方法都定义在对象之内), 这样在外界如果不通过对象名.方法名, 这种格式的话就无法访问里面的方法, 体现了面向对象的封装性。

摘自 从此爱上蒲肉格蕾铭.-^

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Gb2312转utf-8编码的方法(vbs+js)
    • 如何使用Ajax技术开发Web应用程序(1)
    • JavaScript模仿桌面窗口
    • js跳转路径问题
    • jquery学习笔记---jqGrid学习笔记 完整整理
    • 运用JavaScript构建你的第一个Metro式应用程序(on Windows
    • 2011年度最佳 jQuery 插件
    • 我知道的JavaScript -- 设计模式(桥接)应用之 – 验证器
    • 我是如何去了解jquery的(六),案例之幻灯片轮换
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索 - 移动版 - 返回顶部
    Copyright © 2008-2013 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1