最近刚好学到这部分内容,对于以前接触过c++或者Java的同学来说,理解这个this应该算如鱼得水吧~
在c++中它有一个可爱的称呼叫this指针,但是在现阶段js的学习中我还没有遇见指针这样阔爱的说法~
so 今天就来瞧瞧,js中的this为何种妖魔!
看到篇文章的伙伴,多少应该学了点js内容的,基础的知识(例如:什么叫对象)就不跟大家赘述了~
1.this是什么?this是一个对象。解析器在调用函数时,每次都会向函数内部传递一个隐含参数,它就是this!
既然它是一个对象,那么这个对象具体指谁呢?
答:当它调用时,作为哪个对象的方法被调用,那么this就是指哪个对象。
不禁又来一个问题,要这个对象干什么,还偷偷摸摸传进去!简直岂有此理!
答:有用!你不觉得,有了这个this,会让代码更加灵活吗?有一种动态的高级感。
譬如:一个函数作为不同对象的方法出现,当调用方法时,你都想输出关于这个方法对应的不同对象的某个相同属性,使用this就可以很好解决啦~
来一波例子吧~
//创建一个函数
function fun() {
console.log(this);
}
//创建一个对象obj1
var obj1 ={
name:"Tom",
sayHello:fun
};
//创建一个对象obj2
var obj2 ={
name:"Jerry",
sayHello:fun
};
//此时this是window, fun() 就相当于window.fun();
fun();
//此时的控制台打印结果
//Window {top: Window, window: Window, location: Location, chrome: Object, document: document…}
//此时this是obj2
obj2.sayHello();
//控制台打印结果
//Object {name: "Jerry", sayHello: function}
//此事this是obj1
obj1.sayHello();
//控制台打印结果
//Object {name: "Tom", sayHello: function}
如果还是不大理解的话,就自己多写写,多试试,熟能生巧哦~



