网页的本质就是超级文本标记语言,通过结合使用其他的Web技术(如:脚本语言、公共网关接口、组件等),可以创造出功能强大的网页。因而,超级文本标记语言是万维网(Web)编程的基础,也就是说万维网是建立在超文本基础之上的。超级文本标记语言之所以称为超文本标记语言,是因为文本中包含了所谓“超级链接”点。
本文章将分享有关JavaScript中闭包的知识点,有一定的参考价值,希望对大家有所帮助
闭包是函数和声明该函数的词法环境的组合,当内部函数被保存到外部时,将会生成闭包而闭包会导致原有作用域链不释放,造成内存泄露,但同时闭包也是非常有用的,因为它可以将某些数据与对该数据的操作进行关联。
例:
function demo() {
var name = '张三'; // name 是demo()创建的局部变量
function demo1() { //demo1()是demo()中的内部函数(闭包)
console.log(name); // 使用父函数中声明的变量
}
demo1();
}demo();
函数demo()中创建一个名为name的局部变量和一个名为demo1()的内部函数。 demo1()函数只能在demo()函数体内使用。 demo1没有自己的局部变量。但是由于内部函数可以访问外部函数的变量,所以demo1()可以访问父函数demo()中声明的变量名name。但是如果有同名变量 name 在demo1中被定义,则会使用 自己函数中定义的 name。该例子说明嵌套函数可以访问在其外部作用域中声明的变量。