美文网首页码农杂记
JavaScript关于闭包

JavaScript关于闭包

作者: 子谦Sumer | 来源:发表于2015-08-18 22:37 被阅读27次

在学习JavaScript这条路上,对于闭包这个JS中极其重要的应用技巧或者说是一个语言特性一直停留在最最表层的:

函数α内部的函数β被函数外部所调用,然后内部的函数β由于被调用使得其生存周期得以延长。而本身不能被外部调用的函数α的变量,则可以被调用。

然而往稍微深一点的层次里去探究,就会发现闭包对理解JS作用域链有着极大的作用。举例说明:

var guo = function(status){

return {

get_status:function(){

return status;

}

}

}

var myQuo_1 = guo("amazed_me");

var myQuo_ 2= guo("amazed_u");

测试这俩个对象是否共用一个status,你会发现,俩个对象所返回的status是不相同的,可以看出,JS对象作用域链上所绑定的对象并非是我们想当然的那个对象,而是在函数调用时所伴生的一个活动对象,这个对象里在函数的生命周期里保存了,函数传入的参数列表以及绑定的this值。

所以闭包内部函数所具有的作用域链上连接有外部函数以及其本身的活动对象,而非这些函数对象本身。可以试想,若作用域链上所保有的对象是函数对象本身,例子中的,俩个实例对象的私有status属性就应该是guo的属性,即是共有属性,值应该是相同的。

相关文章

  • JavaScript----闭包

    javascript之闭包 闭包的概念     闭包(closure)是 JavaScript 的一种语法特性。 ...

  • 关于闭包

    最近在看JavaScript高程和一些博客的时候对闭包有了更深的认识,关于闭包更像是JavaScript词法作用域...

  • JavaScript关于闭包

    在学习JavaScript这条路上,对于闭包这个JS中极其重要的应用技巧或者说是一个语言特性一直停留在最最表层的:...

  • 关于javascript闭包

    闭包的概念比较抽象,理解起来比较困难,但是仔细分析一下其实也没有特别恐怖,面向对象的概念都搞定了这又算啥呢 定义:...

  • 学习JavaScript闭包和作用域笔记

    JS JavaScript闭包和作用域 闭包 JavaScript高级程序设计中对闭包的定义:闭包是指有权访问另外...

  • 充分理解 闭包

    关于闭包的文章https://medium.freecodecamp.org/whats-a-javascript...

  • 再谈JS闭包(JS闭包系列2)

    这篇文章,来继续谈谈Javascript闭包的剩余问题。因为在上一篇文章中关于JS闭包(JS闭包系列1)主要简单的...

  • javascript中闭包是什么

    javascript中闭包是什么 JavaScript 变量可以是局部变量或全局变量。私有变量可以用到闭包。闭包就...

  • Javascript 闭包

    闭包 (注:所以案例以 javascript 实现) 初识闭包 什么是闭包 MDNClosures are fun...

  • javaScript闭包

    转自知乎Rachel 什么是闭包 关于为什么在JavaScript中闭包得应用都有关键词"return",引用Ja...

网友评论

    本文标题:JavaScript关于闭包

    本文链接:https://www.haomeiwen.com/subject/ruqgqttx.html