1 / 8
文档名称:

js作用域.doc

格式:doc   页数:8页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

js作用域.doc

上传人:xxj16588 2016/3/13 文件大小:0 KB

下载得到文件列表

js作用域.doc

相关文档

文档介绍

文档介绍:-- ------------------------------------------- JavaScript 作用域任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在 JavaScript 中, 变量的作用域有全局作用域和局部作用域两种。 1. 全局作用域(Global Scope) 在代码中任何地方都能访问到的对象拥有全局作用域, 一般来说一下几种情形拥有全局作用域: (1) 最外层函数和在最外层函数外面定义的变量拥有全局作用域,例如: 代码如下: var authorName=" 山边小溪"; function doSomething(){ var blogName=" 梦想天空"; function innerSay(){ alert(blogName); } innerSay(); } alert(authorName); // 山边小溪 alert(blogName); // 脚本错误 doSomething(); // 梦想天空 innerSay() // 脚本错误(2) 所有末定义直接赋值的变量自动声明为拥有全局作用域,例如: 代码如下: function doSomething(){ var authorName=" 山边小溪"; blogName=" 梦想天空"; alert(authorName); } alert(blogName); // 梦想天空 alert(authorName); // 脚本错误变量 blogName 拥有全局作用域,而 authorName 在函数外部无法访问到。(3) 所有 window 对象的属性拥有全局作用域一般情况下, window 对象的内置属性都都拥有全局作用域,例如 、 、 等等。 1. 局部作用域(Local Scope) 和全局作用域相反, 局部作用域一般只在固定的代码片段内可访问到, 最常见的例如函数内部,所有在一些地方也会看到有人把这种作用域成为函数作用域,例如下列代码中的 blogName 和函数 innerSay 都只拥有局部作用域。代码如下: function doSomething(){ var blogName=" 梦想天空"; function innerSay(){ alert(blogName); } innerSay(); } alert(blogName); // 脚本错误 innerSay(); // 脚本错误作用域链(Scope Chain) 在 JavaScript 中,函数也是对象,实际上, JavaScript 里一切都是对象。函数对象和其它对象一样, 拥有可以通过代码访问的属性和一系列仅供 JavaScript 引擎访问的内部属性。其中一个内部属性是[[Scope]] ,由 ECMA-262 标准第三版定义, 该内部属性包含了函数被创建的作用域中对象的集合,这个集合被称为函数的作用域链,它决定了哪些数据能被函数访问。当一个函数创建后, 它的作用域链会被创建此函数的作用域中可访问的数据对象填充。例如定义下面这样一个函数: 代码如下: function add(num1,num2) { var su