闭包
概念:
闭包就是能够读取其他函数内部变量的函数。
(有权访问另一个函数作用域中的变量的函数。)
(就是拿到本不该属于他的东西)
作用:
闭包可以用在许多地方。它的最大用处有两个,一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。
闭包注意问题:
由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。
优点:闭包可以让局部变量持久化
作用域链
概念:在一个函数中嵌套多个函数,并且各自定义的相同的变量名,当函数访问变量时,就形成了作用域链。
查找顺序:从当前函数开始查找,如果没有找到,向上一级函数开始查找,直到找到为止,如果一直没有找到,则说明该变量未定义。
作用域链明确表示:在变量解析过程中首先查找局部作用域,然后查找上层作用域
垃圾回收:
有两种策略来实现垃圾回收:标记清除 和 引用计数;
标记清除:垃圾收集器在运行的时候会给存储在内存中的所有变量都加上标记,然后,它会去掉环境中的变量的标记和被环境中的变量引用的变量的标记,此后,如果变量再被标记则表示此变量准备被删除。 2008年为止,IE,Firefox,opera,chrome,Safari的javascript都用使用了该方式;
引用计数:跟踪记录每个值被引用的次数,当声明一个变量并将一个引用类型的值赋给该变量时,这个值的引用次数就是1,如果这个值再被赋值给另一个变量,则引用次数加1。相反,如果一个变量脱离了该值的引用,则该值引用次数减1,当次数为0时,就会等待垃圾收集器的回收
this(部分--后续更全面)
this对象是在运行时基于函数的执行环境绑定的。在全局函数中,this等于window,而当函数被用作为某个对象的方法调用时,this等于那个对象。不过匿名函数的执行环境具有全局性,因此其this对象通常指向window。
js动画(上)
offsetParent
只读 属性 返回离当前元素最近的一个有定位属性的父节点
如果没有定位父级, 默认是body
offsetLeft
若无定位父级,则offsetLeft属性来返回元素的X坐标。
只读 属性 当前元素到定位父级的距离(偏移值)
到当前元素的offsetParent的距离
offsetLeft可以判断一个物体的跟document的左边距离,也就是浏览器左边缘。
obj.offsetLeft 指 obj 距离左方或上层控件的位置,整型,单位像素。
offsetTop
若无定位父级,则offsetTop属性来返回元素的Y坐标。
obj.offsetTop 指 obj 距离上方或上层控件的位置,整型,单位像素。
用时间积累经验,你不比任何人差,相信自己,不放弃,不回头,不退缩,加油!!!
网友评论