资讯专栏INFORMATION COLUMN

函数中的this 箭头函数相关知识

马永翠 / 2692人阅读

摘要:情况如果一个函数中有,这个函数有被上一级的对象所调用,那么指向的就是上一级的对象。

函数中 this -->普通函数中this 不是看它定义时候所处的对象 谁调用它this就是谁

普通函数中 this 是什么?

任何函数本质上都是通过某个对象来调用的,如果没有直接指定就是window

所有函数内部都有一个变量this

它的值是调用函数的当前对象

如何确定this的值?

test(): window

p.test(): p

new test(): 新创建的对象(准确说不是p 但p最后是指向这个对象的) var p = new test()

p.call(obj): obj

//

情况1:如果一个函数中有this,但是它没有被上一级的对象所调用,那么this指向的就是window,
这里需要说明的是在js的严格版中this指向的不是window,但是我们这里不探讨严格版的问题,你想了解可以自行上网查找。

  情况2:如果一个函数中有this,这个函数有被上一级的对象所调用,那么this指向的就是上一级的对象。

  情况3:如果一个函数中有this,这个函数中包含多个对象,尽管这个函数是被最外层的对象所调用,this指向的也只是它上一级的对象

var o = {

a:10,
b:{
    // a:12,
    fn:function(){
        console.log(this.a); //undefined
    }
}

}
o.b.fn();
尽管对象b中没有属性a,这个this指向的也是对象b,因为this只会指向它的上一级对象,不管这个对象中有没有this要的东西。

//
var o = {

a:10,
b:{
    a:12,
    fn:function(){
        console.log(this.a); //undefined
        console.log(this); //window
    }
}

}
var j = o.b.fn;
j();

**this永远指向的是最后调用它的对象,也就是看它执行的时候是谁调用的,例子中虽然函数fn是被对象b所引用,
但是在将fn赋值给变量j的时候并没有执行所以最终指向的是window**

箭头函数的特点:

1、简洁
2、箭头函数没有自己的this,箭头函数的this不是调用的时候决定的,而是在定义的时候处在的对象就是它的this

3、扩展理解: 箭头函数的this看外层的是否有函数,

    如果有,外层函数的this就是内部箭头函数的this,( 如果它的外层也是箭头函数,则继续向外找)
    如果没有,则this是window。
    

作用: 定义匿名函数

基本语法:

没有参数: () => console.log("xxxx")

一个参数: i => i+2

大于一个参数: (i,j) => i+j

函数体不用大括号: 默认返回结果

函数体如果有多个语句, 需要用{}包围,若有需要返回的内容,需要手动返回

使用场景: 多用来定义回调函数

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/101579.html

相关文章

  • TypeScript学习6-函数

    摘要:类型声明中的函数定义,需要声明参数和返回值的类型。其中隐藏有一个点类型推断,箭头函数没有声明返回值类型,这里编译器不会报错,因为它可以推断出返回值类型。 引言 TypeScript中的函数和JavaScript中的函数,和其他特性相比,是相差不大的。 这里会补充一点进阶知识。 函数相关的知识点 下面列举一些TypeScript中函数相关的知识点。 类型声明 TypeScript中的函...

    fuyi501 评论0 收藏0
  • javascript this的学习总结

    摘要:例如通过,调用时强制把它的绑定到上。箭头函数问题箭头函数体内的对象就是定义时所在的对象,而不是使用时所在的对象,固定不变。 刚入门javascript,关于this的学习,花了自己挺多的时间,做了比较多的功课,看了一篇又一篇的文章,也看了一些书籍,今天就结合看的那些东西总结下自己所学到的东西,方便留着以后回看,进一步的学习,这篇文章会不断的更新,不断的更新自己的想法,现在还是一个入门不...

    A Loity 评论0 收藏0
  • 新手开发中常用ES6基础知识总结

    摘要:感觉对我这种没实习没工作的新手,虽然一些高级的功能暂时用不上,但是一些基础的知识还是为平时的开发提供了巨大的便利。学习告一段落,现在结合平时的开发,总结一些常用的知识。日常开发中,块级作用域中使用的变量,尽量使用或者声明。使用时,进行合并。 很早之前就学过TypeScript和ES6,后来做项目的时候零零散散用了些。这几天又系统地把ES6的知识看了一遍。感觉对我这种没实习没工作的新手,...

    Paul_King 评论0 收藏0
  • 知识点小记

    摘要:箭头函数我们来看一下箭头函数的效果箭头函数是无法通过来修改作用域的这个需要切记。所以切记在需要的时候使用箭头函数。 这是一些小问题的记录和总结: 1. vue serve和build 在vue-cli3.0中可以快速的开发原型。通过全局安全@vue/cli-service-global npm i -g @vue/cli-service-global 那么就可以使用vue serve ...

    shery 评论0 收藏0
  • JavaScript ES6相关的一些知识(/let、const/箭头函数/Promise/gene

    摘要:的精髓在于,用维护状态传递状态的方式使得回调函数能够及时调用,比传递要简单灵活的其他方法用于指定发生错误时的回调函数,等同于部分和的区别在发生异常,在中捕获不到能够捕获异常。 ES6是个啥 ECMAScript是国际通过的标准化脚本语言JavaScript由ES,BOM,DOM组成ES是JavaScript的语言规范,同时JavaScript是ES的实现和扩展6就是JavaScript...

    opengps 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<