栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

JavaScript之何为this

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScript之何为this

最近刚好学到这部分内容,对于以前接触过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}
 

如果还是不大理解的话,就自己多写写,多试试,熟能生巧哦~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1019271.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号