知识点理解

  程序,不论它是什么语言编写的、运行于什么平台的、依据什么编程思想组织的,它都是一组被组织起来的CPU指令,一组有一个开头、可能有多个分叉的CPU指令。

  面向对象编程,只是我们组织代码、理解代码的一种思想,并不是程序的不同本质。

  面向对象是人们对现实世界的模仿。程序在最初的时候只是CPU指令,随着程序规模越来越大,我们用函数、、文件、模块、包、类等进行代码组织,但是如果只是用一些层级概念组织一下,是不便于理解的。模仿是人类的天性。现实世界是一个复杂的世界,但是它运行的很好。我们把现实世界的一切都看做是对象,大到宇宙、地球,小到尘埃、分子,远到山川河流,近到手耳口鼻,一层套着一层,各自独立又相互关联。对象是早就存在的。所以我们用面向对象的思想,将程序也设计成一个个对象,相互独立又相互关联。

 

  javascript中的闭包

    javascript中函数是一等公民,函数可以像对象一样使用,也就可以作为一个函数的返回值。

    javascript中的作用域只有两种,全局作用域和函数中的局部作用域。

    

function a()
{
  var e =0;
  function b(){e=2;return e;};  
  return b;
}

 

    对于返回的函数,其作用域就到了返回它的函数的外面了。如上,b函数本来的作用域是a函数体,但是作为a的返回值返回之后,我们在a函数的外面就可以使用它了。同时通过b也可以操作a中的局部变量e了,这就构成了一个闭包。

    闭包的本质是代码的一种组织方式,有自己的数据——b中操作的a中的局部变量,有自己的方法——b函数。当然我们可以返回多个方法,让其有可以有各种操作。

    

  

posted @ 2016-09-29 15:29  授之以渔  阅读(394)  评论(0编辑  收藏  举报