理解闭包

首先JS函数运行会有一个作用域,全局作用域

函数执行会有一个本地作用域。函数作用域

作用域,作用域就是一套规则,用于确定在何处以及如何查找变量(标识符)的规则。通俗的讲,作用域就是查找变量的地方。

从本地查不到到全局查,这种称为作用域链。

闭包就是访问并保留自身外的作用域对象的函数。

原型和原型链

其他地方都好理解,就这里,十分有意思,Object()是由Function.prototype创建,但是他由继承自object.prototype.由Object()创建。那么到底谁先谁后,鸡蛋问题。先有鸡还是先有蛋。那么答案是什么呢?

先说答案,万物皆对象不准确,应该说万物皆Function创建。不过有个内置的object.prototype.

继续阅读“原型和原型链”