Web前端教程之JavaScript中this知识解析
在JavaScript 中,this是一个相对难懂的特殊变量。因为它随处可用,而不仅仅是面向对象的编程中。在今天的Web前端教程中,千锋太原老师就给大家讲解如何快速掌握this。
JavaScript中的this是什么?它在function内部被创建,指向调用时所在函数所绑定的对象(拗口),this不能被赋值,但可以被call/apply 改变。
this和构造器:this本身就是类定义时构造器里需要用到的,和构造器在一起再自然不过。按照JavaScript的习惯this应该挂属性/字段,方法都应该放在原型上。
this和对象:JS中的对象不用类也可以创建,并且你完全可以写上万行功能代码而不用写一个类。
this和函数:this和独立的函数放在一起是没有意义的,this应该是和面向对象相关的,纯粹的函数只是一个低级别的抽象,封装和复用。
为了方便理解this,最好的方式是根据使用this的位置划分三种类型:
1)在函数内部:this是一个额外的隐含的参数。使用场景有三:真正函数(this在松散模式下是全局对象,严格模式下是 undefined );构造函数(this指向刚创建的实例 );方法(this 指向方法调用的接受对象 )。
2)在函数外部(顶级作用域中):this在浏览器中指向全局对象;在Node.jS中指向模块(module) 的接口(exports)。
3)在传递给eval() 的字符串中:eval() 如果是被直接调用,this指的是当前对象;如果是被间接调用,this指的是全局对象。
在使用this时,一定要规避以下陷阱:
1、忘记使用new操作符。this不会指向正确的值。在松散模式中,this指向 window,并且会创建全局变量;
2、获取方法不当。如果你获取的是方法的值(而非调用),你会将方法又转变为函数。调用这个值的结果是一个函数调用,而不是一个方法调用;
3、覆盖this。当你在一个方法中使用一个真正函数时,很容易忘记前者有它自己的this值(即使真正的函数中没用显式的使用 this )。因此,你不能从真正函数中的this引用到方法的this,因为它是被覆盖的。
相关推荐HOT
更多>>报班学java得多少钱,哪里的培训效果好
在IT领域,java的使用非常广,无论是网站设计,还是软件开发,又或者是系统、游戏开发等,都离不开java。很多人看到java有着如此广的应用前景,...详情>>
2023-02-24 16:43:16学java开发要多少钱?培训费一般多少
想要学it的人,对java不会很陌生。事实上,计算机编程工作中,学java开发是会经常用到的。学java开发,能够在众多领域就业,比如网络安全,比如...详情>>
2023-02-21 14:16:00HTML5大前端有什么特点
HTML5大前端是一种来组织Web前端内容的语言,其目的是通过创建一种标准的和直观的UI标记语言来把Web前端设计和开发变得容易起来。今天,千锋太...详情>>
2019-08-08 11:05:00快速掌握HTML5大前端要注意这几点
当前,HTML5发展如火如荼,前端开发前景一片光明。不少人想通过HTML5培训在前端开发方面占得一席之地。千锋太原校区老师认为你无论决定学习什么...详情>>
2019-07-29 10:59:00热门推荐
计算机编程有哪几种语言?零基础适合学哪种?
沸女生做前端开发合适吗?毕业后好找工作吗?
热报班学java得多少钱,哪里的培训效果好
热想做it学什么比较好?选择it学习方向需注意些什么
新java程序员培训班要多少钱?贵不贵
学java开发要多少钱?培训费一般多少
前端开发培训班学出来有用吗?好就业吗
程序员需要什么条件?有就业目标就好
java有什么用?学好了就知道了
前端培训学费高吗?到哪里培训效果好
学前端要学多久?学完之后好就业吗
女孩子适合学it吗?适合哪些专业
在哪学it比较好?学it的费用大概是多少
太原it培训班大概需要多少钱?要培训多久