javascript之深入剖析this
this的重要性不言而喻,比如面试题经常考到,其次,如果彻底理解了this,那么对理解框架源码及编写高质量代码都有很大的帮助。本文就是要深入剖析this的几种情况,理解了原理,以后妈妈再也不用担心你的this了。。 this是 动态绑定 的,其实相对应的是作用域,因为作用域是在代码刚刚写完的时候,就已经定义好了。理解了作用域,对理解闭包很有帮助。本文主要讲解this绑定,大家心里先有和作用域的一个大致对比就行,以后的文章会专门讲解。 所谓 动态绑定 , 就是只有在函数被调用的时候,this才能确定它真正指向的是哪个对象。 this分为以下 四种情况 ,这四种掌握了,就打遍天下无敌手了~ 我们先定义一个函数: function foo(name){ this.name=name; console.log(this.name); } 一、new绑定 var obj=new foo("yx"); 控制台输出结果:"yx" 继续在控制台输入: obj.name ,结果依然是"yx" 对于上面的 foo 函数, 如果改成 function foo(name){ var o={name:"peggy"}; this.name=name; console.log(this.name); return o; }