Javascript 闭包
闭包(closure)。指的是一种函数,这种函数使用了在它周围作用域下定义的变量。 MDN 里的关于闭包的中文文档非常好的解释了什么是闭包。闭包是一种特别的对象,也可以说是一种特别的函数,这种对象有两个部分组成,一部分是函数本身,还有一部分是创建这个函数的时候的这个函数所在的那个环境。也就是闭包是函…
- 2.16k
- 1
- 阅读全文
闭包(closure)。指的是一种函数,这种函数使用了在它周围作用域下定义的变量。 MDN 里的关于闭包的中文文档非常好的解释了什么是闭包。闭包是一种特别的对象,也可以说是一种特别的函数,这种对象有两个部分组成,一部分是函数本身,还有一部分是创建这个函数的时候的这个函数所在的那个环境。也就是闭包是函…
一,相关概念 EC : 执行上下文 ECS : 执行环境栈 VO : 变量对象 AO : 活动对象 scope chain :作用域链 二,执行上下文 javascript运行的代码环境有三种: 全局代码:代码默认运行的环境,最先会进入到全局环境中 函数代码:在函数的局部环境中运行的代码 Eval代…
一,作用域 包括静态作用域和动态作用域,静态作用域也叫词法作用域,javascript采用的是静态作用域。 js中作用域是指可访问变量,对象,函数的集合,也就是调用它们能生效的代码区块。在js中没有块级作用域,只有全局作用域和函数作用域,可以模仿块级作用域,下面会讲到。 全局作用域 打开一个 js …
原型和原型链是js中的难点也是重点,明白了原型和原型链会让我们在后面不管是学习还是工作都会更加高效,并且原型和原型链会是面试中必不可少的话题。看完此篇文章一定会让你对原型,原型链有深刻全面的了解。 一,函数对象 所有引用类型(函数,数组,对象)都拥有__proto__属性(隐式原型) …
vue.js是采用数据劫持,并结合发布者——订阅者的模式:通过Object.defineProperty()来劫持vue中各个属性的setter、getter,在数据变动的时候,再发布消息给订阅者 具体是怎么实现的呢? 这里就要再说一下Object.defineProperty(); Object.…
最近在研究Vue,项目的菜单是后台动态返回节点动态生成头部导航,然后再动态添加路由,利用的方法是 $router.addRouters()【官网的文档真的很简洁,说了跟没说一样】,路由的参数是一个数组,这个数组和我们手动进行路由配置里的routes里的是需要一样的数组; 还记得我们是怎么配置路由的吗…