随笔分类 -  你不知道的JS

原型prototype
摘要:在Js中,当试图引用对象的某个属性时,会进行GET操作,第一步会检查对象本身是否拥有这个属性,如果有的话就使用它,否则就会往对象的原型链上查询,一直查到该属性或者到达原型链的最顶端(与作用域类似,作用域查询变量,原形链查询属性)。如下代码: myObject本身是没有a属性的,但是它关联到了anot 阅读全文

posted @ 2017-02-14 21:51 菜的黑人牙膏 阅读(443) 评论(0) 推荐(0)

this
摘要:调用位置:函数在代码中调用的位置,而不是声明的位置。 调用栈:为了到达当前执行位置的所有调用的函数。 例子: 调用位置则是调用栈的第二个元素,可以使用调试器找出调用栈。 函数执行过程中如何使用调用位置决定this的绑定对象。 this绑定有四种规则: 1.默认绑定:this指向全局对象,可以看做无法 阅读全文

posted @ 2017-02-12 16:47 菜的黑人牙膏 阅读(210) 评论(0) 推荐(0)

作用域、闭包、模块
摘要:当函数可以记住并访问所在的词法作用域时,就产生了闭包,即使函数是在当前作用域的外面执行。 在这个例子中,bar可以正常执行,它是在直接定义的词法作用域外执行的。通常,foo执行完后JS引擎会执行垃圾回收机制,但由于函数bar作为返回值赋值给baz,所以bar不会被回收,而bar覆盖了foo的内部作用 阅读全文

posted @ 2017-02-10 16:53 菜的黑人牙膏 阅读(232) 评论(0) 推荐(0)

Js中的提升
摘要:Js的执行并不是由上向下一行一行顺序下来的,一个例子如下: 输出的是2,这区别于别的语言。 再一个例子: 输出的是undefined。 由var a = 2; Js的引擎机制是先编译,再执 ,先从编译器说起,编译过程中,我们知道编译会先根据声明为其确定作用域。上面的例子中实际上编译器会将其看成两个声 阅读全文

posted @ 2017-01-25 16:41 菜的黑人牙膏 阅读(167) 评论(0) 推荐(0)

理解作用域(引擎,编译器,作用域)
摘要:在JS中,引擎,编译器,作用域分别扮演以下角色: 引擎:负责整个Js程序的编译以及执行过程。 编译器:负责语法分析以及代码生成等。 作用域:负责收集并维护所有声明的标示符(变量)组成的一系列查询,并实施一套严格的规则,确定当前执行的代码对这些标识符的访问权限。 下面用一个小例子来表示: 1.首先,遇 阅读全文

posted @ 2017-01-23 14:59 菜的黑人牙膏 阅读(473) 评论(0) 推荐(0)

导航