这几天在学习前端技术,看了红宝书,觉得红宝书里讲的内容特别详细,但是我有时候看着看着就看不懂了,所以特此写下这篇文章来总结一下。
我不知道大家对js中的this对象是如何理解的,我每次看到this我都会发怵,因为我觉得这个this特别乱,所以专门来总结一下this的用法。
在总结之前,我要先问自己几个问题:
this是什么?this的作用是什么?this都在哪里会用到?为什么要用this?
首先我要讲一下this是什么?先看一下下面的例子:
function example(){
return this.name;
}
var my={
name:"yn",
}
example.call(my);//"yn"
上面例子中如果不使用this那就必须给函数传入一个参数,通过参数来调用name,
function example(context){
return context.name;
}
var my={
name:"yn",
}
example(my);//"yn"
这样的话this其实是一个对象,她隐式的给函数传入一个对象引用。
this是在代码运行时绑定的,并不是编写时就绑定的,this的绑定和函数及声明的位置没有任何关系,只取决于函数的调用方式。