浏览模式: 标准 | 列表Tag:javascript

深入理解JavaScript闭包(closure)

最近在网上查阅了不少Javascript闭包(closure)相关的资料,写的大多是非常的学术和专业。对于初学者来说别说理解闭包了,就连文字叙述都很难看懂。撰写此文的目的就是用最通俗的文字揭开Javascript闭包的真实面目。

一、什么是闭包?

“官方”的解释是:闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。
相信很少有人能直接看懂这句话,因为他描述的太学术。其实这句话通俗的来说就是:JavaScript中所有的function都是一个闭包。不过一般来说,嵌套的function所产生的闭包更为强大,也是大部分时候我们所谓的“闭包”。看下面这段代码:

……

» 阅读全文

Tags: javascript, 闭包, closure

javascript 获得页面各种高度

网页可见区域宽: document.body.clientWidth
网页可见区域高: document.body.clientHeight
网页可见区域宽: document.body.offsetWidth (包括边线的宽)
网页可见区域高: document.body.offsetHeight (包括边线的高)
网页正文全文宽: document.body.scrollWidth

……

» 阅读全文

Tags: javascript, 页面高度

对JavaScript调用堆栈和setTimeout用法的深入研究

这段代码中的setTimeout延迟设为了0,就是延迟0毫秒,貌似是不做任何延迟立刻执行,即1,2。但实际的执行结果确是2,1。
为什么?这得从Javascript调用堆栈(call stack)和setTimeout的功能说起。

……

» 阅读全文

Tags: javascript, settimeout, 堆栈

Javascript解压缩及美化工具

强大的Javascript解压缩及美化工具,经过本人亲测:)

» 阅读全文

Tags: javascript, 解压缩, 美化, 工具