浏览器事件
事件事件编程是一种观察者模式,可以很好的解耦页面的表现和页面的行为。
事件流事件冒泡 - IE 浏览器:从子节点到祖先节点事件捕获 - Netscape 浏览器:从祖先节点到子节点DOM 事件流 - DOM2 Event 规范 3 个阶段:事件捕获 -> 到达目标 -> 事件冒泡
事件冒
...
执行上下文中有个作用域链,当查找一个变量时会顺着这个链找。
函数的作用域在函数定义的时候就决定了。这是因为函数对象有个内部属性[[scope]]
函数的生命周期分为:函数创建 和 函数调用。
函数创建的时候,会把其所处执行上下文的作用域链直接赋值给函数的内部属性[[scope]]
(这就是词法作用域的原理了),函数调用的时候会创建自己的执行上下文,并把自己的AO
和[[scope]]
合并成新的作用域链:
假设要实现动态作用域的话,
[[scope]]
就得在调用时去执行上下文栈的上一帧去取。
1 | Scope = [AO].concat([[scope]]); |