js偏门知识的理解


1、js函数内部声明变量的时候,要使用var命令。如果不用的话,实际上是声明了一个全局变量!

2、闭包的特性可以实现函数外部访问函数内部局部变量的功能,闭包占用过多内存,耗费性能,慎用,可以通过js的原型链

模拟面向对象的继承,通过闭包模拟面向对象的封装,在js中是不存在多态的思想的,因为js天生是”无态“的,面向对象

中的多态思想没有意义

3、全局变量都是window对象的属性

4、js的this指向让人觉得不确定,但是明确一点:this所在的函数是当做哪个对象的方法调用的,则该对象就是this所引用的对象。 

this 一般情况下,都是指向函数的拥有者,通过call和apply可以重新定义函数的执行环境,即this的指向,this指向的是apply中的第一个参数;


在函数自执行里(包含在小括号作为一个表达式执行),this 指向的是window;


使用标签属性注册事件,此时this 指向的是 window 对象,需要手动将this传递过去;


如果function 不是作为一个对象的属性,该 function 被调用的时候,this指的是全局对象


使用 addEventListener 等注册。此时this 是指向 事件的注册着如某个按钮;


如果fuction调用的表达式包含句点(.)this 的值是句点(.)之前的对象



猜你喜欢

转载自blog.csdn.net/jianjiankedizai/article/details/50902988