Chapter4: Hoisting 变量附加到哪个层次的scope,由它们在哪里和如何声明(let, var)来决定. Function scope/Block scope都有相同的法则:任何变量在一个scope内声明,则这个变量附加到这个作用域上. 但有一个细节问题:当声明declarations出现在一个作用域中的不同的位置的时候,scope附加如何与declarations协作? Chicken or The Egg? temptation: a strong desire to hav…
第二章,作用域由一系列的bubbles组成.每一个都代表了一个container或bucket,装着被声明的identifiers(variables, functions).这些bubbles相互嵌套.这种嵌套是在开发阶段写完的. 什么制造了一个新的bubble? 只是函数吗?其他的JS结构可以创建bubbles of scope吗? Function Vs. Block Scope Scope From Functions 探索函数作用域和它的暗示implications. 函数作用域内的所…
2种主要的models for how scope work. 最普遍的是Lexical Scope. 另一种 Dynamic Scope.(在Appendix a中介绍.和Lexical Scope 进行对比) Lex-time lexical scope is scope that is defined at lexing time. lexical scope是基于变量和blocks of scope被创建(被你,在write time). 不知道这是啥玩意! 我的理解就是定义作用域的有效…
Chapter 5: Scope Closure 我们到达这里时,已经对作用域如何工作有了非常健康稳固的理解. 下面,我们转移注意力到一个及其重要,但长期难以理解,几乎是神话中的部分语言:Closure! Enlightenment…
Content What is Scope? Lexical Scope Function Vs. Block Scope Hoisting Scope Closures Appendix: Dynamic Scope Polyfilling Block Scope Lexical-this Thank You's Chapter1: What is Scope? In fact, the ability to store values and pull values out of variab…
Chapter 1: What is Scope? 第一章:什么是作用域 One of the most fundamental paradigms of nearly all programming languages is the ability to store values in variables, and later retrieve or modify those values. In fact, the ability to store values and pull value…
JavaScript只有Lexical Scope 模式 Lexical Scope就是在写代码的时候,定义函数的时候创建的作用域! 而动态作用域是在runtime时,函数被调用的地方的作用域! 实际上 dynamic Scope是 this关键字的近亲.这会在this & Object Prototypes系列讲解. 第二章,lexical scope是这方面的法则:Engine如何查询一个变量,在哪找到这个变量! 关键特征就是lexical scope是定义在author-time,打代码的…
JS中的闭包(closure) 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现.下面就是我的学习笔记,对于Javascript初学者应该是很有用的. 一.什么是闭包 JS中,在函数内部可以读取函数外部的变量 function outer(){ var localVal = 30; return localVal; } outer();//30 但,在函数外部自然无法读取函数内的局部变量 function outer(){ var local…
Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带. Scope 是一个对象,有可用的方法和属性. Scope 可应用在视图和控制器上. 当你在 AngularJS 创建控制器时,你可以将 $scope 对象当作一个参数传递: 控制器中的属性对应了视图上的属性: <div ng-app="myApp" ng-controller="myCtrl"><h1>{{carname}}</h1&g…
Chapter 1: Asynchrony: Now & Later 在一门语言中,比如JavaScript, 最重要但仍然常常被误解的编程部分是如何在一个完整的时间周期表示和操作程序行为. 这是关于当你的程序正在部分运行,其他部分等待运行.--这之间的gap. mind the gap!(比如在subway door and the platform) 异步编程就是这个核心: now and later parts of your program 在JS的发展初级, callback func…