介绍
本篇文章给大家分享的是有关怎么在JavaScript中应用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
JavaScript这门语言中,最令人迷惑的地方有三个,闭包,这原型。针对大多数人,可以利用词法作用域等避开这个的坑,但是我们不能一直生活在舒适区,要敢于打破砂锅问到底,对我们来说也是一种提升。
一,一般对这关键字的误解:
1,这指向函数自身
2,这指向函数词法作用域
我们可以看以下一段代码:
function 测试(),{ 时间=test.a 1; this.a =, 2; console.log(试验原理); console.log (this.a); console.log (test.a ===, this.a); } 测试(); console.dir(测试);
在上面这段代码中,我们在全局声明一个方法测试,测试中给的一个属性赋值1,当前方法中的这中的一个属性赋值2,加入这指向函数自身,那么测试。===这个,并且都等于2。
下面我们来看下这段代码的运行结果:
function 测试(),{=,test.a 1;=,this.a 2; ,console.log(试验原理); ,console.log (this.a); ,console.log (test.a ===, this.a); ,} , ,test.call(测试); console.dir(测试);
运行结果如下:
function 父(),{ ,var a =, 2; , ,function 孩子(),{ ,console.log (this.a) ,} ,孩子(); , ,} 父();
假如这指向函数的词法作用域,那么孩子方法中的这个。一个应该是存在,实际上的执行结果如下: