js中的this问题

这几天在学习前端技术,看了红宝书,觉得红宝书里讲的内容特别详细,但是我有时候看着看着就看不懂了,所以特此写下这篇文章来总结一下。

我不知道大家对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的绑定和函数及声明的位置没有任何关系,只取决于函数的调用方式。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章