千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:太原千锋IT培训  >  行业资讯  >  Web前端教程之JavaScript中this知识解析

Web前端教程之JavaScript中this知识解析

来源:千锋教育
发布人:Yolanda
时间: 2018-12-18 16:29:00

  在JavaScript 中,this是一个相对难懂的特殊变量。因为它随处可用,而不仅仅是面向对象的编程中。在今天的Web前端教程中,千锋太原老师就给大家讲解如何快速掌握this。

  JavaScript中的this是什么?它在function内部被创建,指向调用时所在函数所绑定的对象(拗口),this不能被赋值,但可以被call/apply 改变。

  this和构造器:this本身就是类定义时构造器里需要用到的,和构造器在一起再自然不过。按照JavaScript的习惯this应该挂属性/字段,方法都应该放在原型上。

  this和对象:JS中的对象不用类也可以创建,并且你完全可以写上万行功能代码而不用写一个类。

12

  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,因为它是被覆盖的。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

女孩子适合学it吗?适合哪些专业

2023-02-16

现在学it有前途吗?需不需要培训

2023-02-14

前端开发的未来发展如何?

2020-02-12

最新文章NEW

程序员需要什么条件?有就业目标就好

2023-02-20

学前端要学多久?学完之后好就业吗

2023-02-16

太原it培训班大概需要多少钱?要培训多久

2023-02-14

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>