`

两个个关于javascript的scope的有趣的例子

 
阅读更多
// Functions can see changes in variable values after the function is defined
var myFunction = function() {
    var foo = "hello";
    var myFn = function() {
        console.log( foo );
    };
    foo = "world";
    return myFn;
};
 
var f = myFunction();
f(); // "world"

 

// Scope insanity
// a self-executing anonymous function
(function() {
  var baz = 1;
  var bim = function() {
    alert( baz );
  };
 
  bar = function() {
    alert( baz );
  };
 
})();
 
// baz is not defined outside of the function
console.log( baz );
 
// bar is defined outside of the anonymous function
// because it wasn't declared with var; furthermore,
// because it was defined in the same scope as baz,
// it has access to baz even though other code
// outside of the function does not
bar();
 
// bim is not defined outside of the anonymous function,
// so this will result in an error
bim();

 

 

来自jquery的教学课程: http://learn.jquery.com/javascript-101/scope/

分享到:
评论

相关推荐

    Angular.Js之Scope作用域的学习教程

    在这个例子中,两个输入框分别绑定了各自的 `args`,尽管它们在HTML中看起来是同一个,但由于数据类型是原始类型,所以互不影响。 2. **引用类型数据的继承** 如果属性是引用类型,比如对象或数组,那么在子Scope...

    Eloquent_JavaScript(JavaScript编程精解)第二版 英文版

    - **Boolean values**:布尔类型只有两个可能的值:`true` 和 `false`,常用于逻辑判断。 - **Undefined values**:未定义值表示变量已经被声明但尚未被赋值的情况。 - **Automatic type conversion**:自动类型转换...

    JavaScript教程

    在JavaScript代码被执行之前,首先要经过词法分析和语法分析两个阶段: - **词法分析**:将源代码中的字符流转换成一系列有意义的符号(Token)。例如,将`c = a - b;`这样的代码转换为`NAME "c" EQUALS NAME "a" ...

    Scope(作用域).md

    在JavaScript中,作用域主要分为两种类型:全局作用域和函数作用域。随着ES6的引入,又增加了一种新的作用域类型——块级作用域。 #### 二、作用域的分类与特性 ##### 1. 全局作用域 - **定义**:在任何函数外部...

    javascript闭包

    每个执行环境都包含了两个重要的数据结构:变量对象和作用域链。 - **变量对象**:存储当前执行环境中定义的所有变量和函数声明。 - **作用域链**:用于连接当前执行环境与外部执行环境的链条,从而能够访问外部...

    javascript闭包高级教程

    在这个例子中,`Child`继承自`Parent`,即使`childObj`自身没有`testNumber`属性,但由于`Parent`原型中有此属性,因此可以成功读取到。 #### 标识符解析、执行环境和作用域链 理解闭包的关键在于理解执行环境、...

    模块控制器分离例子

    在AngularJS中,模块(Module)和控制器(Controller)是两个核心概念,它们共同构建了MVC(模型-视图-控制器)架构的基础。本文将深入探讨如何在AngularJS应用中实现模块与控制器的分离,以提高代码的可维护性和可...

    yjc930214#Blog-1#词法作用域1

    两个例子var scope= 'global scope'var scope= 'global scope'由于JavaScript采用词法作用域,函数的作用域

    java操作javaScript案例

    System.out.println("两个数的和为:" + totalNum); } catch (Exception e) { e.printStackTrace(); } ``` 这里,我们通过`put`方法将Java变量`a`和`b`的值传入到脚本引擎的上下文中。当脚本执行时,这些变量可以...

    【JavaScript源代码】动态实现element ui的el-table某列数据不同样式的示例.docx

    在这个例子中,我们需要在Vue实例的`methods`或`computed`中添加一个名为`nationColor`的方法,该方法接收国家名并返回对应的CSS颜色值。 ```javascript methods: { nationColor(nation) { switch (nation) { ...

    Angular ngRoute路由例子

    这里,我们定义了两个路由:一个是根路径'/',对应的模板是'home.html',控制器是'HomeController';另一个是'/about',模板为'about.html',控制器为'AboutController'。`otherwise`方法用于定义当没有匹配到任何...

    AngularJs简介及例子

    AngularJS的核心特点是数据绑定和依赖注入,这两个特性使得开发者能够更加专注于业务逻辑,而非DOM操作。 1. 数据绑定:AngularJS的数据绑定功能允许视图和模型之间的双向通信。这意味着当模型数据发生变化时,视图...

    SampleRhino2.zip

    这段代码创建了一个JavaScript环境,定义了一个名为`add`的函数,并调用了该函数,最后将结果打印出来。 然后,我们探讨JavaScript如何通过反射调用Java方法。在Rhino中,可以使用`Scriptable`对象来映射Java对象,...

    JavaScript的Module模式编程深入分析

    在这个例子中,`MODULE`对象包含了`moduleMethod`和`moduleProperty`这两个公共成员,而`privateVariable`和`privateMethod`则保持私有。 ### 高级模式 #### 拓展 为了处理大型项目,我们需要将模块拆分为多个...

    JavaScript变量的作用域全解析

    了解这两个基本概念对理解JavaScript的作用域体系至关重要。 全局作用域指的是在函数外部声明的变量,它们对整个程序都是可见的,换句话说,在JavaScript中的任何地方都可以访问到这些变量。相反,局部作用域是指在...

    Js作用域和this关键字1

    本文将深入探讨这两个概念及其在实际编程中的应用。 首先,我们来看一下**作用域(Scope)**: 作用域决定了变量在哪些范围内可被访问。在JavaScript中,主要有两种类型的作用域:**全局作用域**和**函数作用域**...

    javascript作用域和闭包使用详解

    接下来,我们将详细探讨这两个概念,从而帮助开发者更好地理解JavaScript。 首先,我们来解释一下作用域的概念。在JavaScript中,作用域是指变量和函数的可访问范围。它决定了变量和函数能被访问的区域。JavaScript...

    利用angularjs1.4制作的简易滑动门效果

    `$scope.toggle()`和`$scope.toggle2()`函数分别负责切换两个`<div>`的显示状态。`toggle()`函数将`myvar`设为`true`,同时将`myvar2`设为`false`,而`toggle2()`函数则相反,实现了点击不同链接时显示相应内容的...

    谈一谈js中的执行环境及作用域_.docx

    函数`foo()`的作用域链包括了两个对象:自身的活动对象和全局环境的变量对象,使得函数内部可以访问到`scope`变量。 在另一个例子中: ```javascript var color = "blue"; function changeColor() { var ...

    一个JavaScript变量声明的知识点

    在这个例子中,`b`在IIFE内部被赋值为`'-----'`,但由于声明使用了var,这行代码执行的时候`b`是`undefined`。之后,在IIFE外部的`alert(typeof b);`会输出`undefined`,因为IIFE内部的`b`和外部的`b`是不同的变量,...

Global site tag (gtag.js) - Google Analytics