JavaScript之扑朔迷离的this
JavaScript之扑朔迷离的this JavaScript这门语言中,最令人迷惑的地方有三个,闭包、this、原型。针对大多数人,可以利用词法作用域等避开this的坑,但是我们不能一直生活在舒适区,要敢于打破砂锅问到底,对我们来说也是一种提升。 一、一般对this关键字的误解: 1、this指向函数自身 2、this指向函数词法作用域 我们可以看以下一段代码: 1 function test() { 2 test.a = 1; 3 this.a = 2; 4 console.log(test.a); 5 console.log(this.a); 6 console.log(test.a === this.a); 7 } 8 9 test(); 10 console.dir(test); 在上面这段代码中,我们在全局声明一个方法test,给test中的a属性赋值1,当前方法中的this中的a属性赋值2,加入this指向函数自身,那么test.a === this,a并且都等于2. 下面我们来看下这段代码的运行结果: 从上可以看出,scopes为全局作用域window,this也指向...