博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数中的this 箭头函数相关知识
阅读量:6452 次
发布时间:2019-06-23

本文共 1227 字,大约阅读时间需要 4 分钟。

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

  1. 普通函数中 this 是什么?

    • 任何函数本质上都是通过某个对象来调用的,如果没有直接指定就是window
    • 所有函数内部都有一个变量this
    • 它的值是调用函数的当前对象
  2. 如何确定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
  • 函数体不用大括号: 默认返回结果
  • 函数体如果有多个语句, 需要用{}包围,若有需要返回的内容,需要手动返回
  • 使用场景: 多用来定义回调函数

转载地址:http://cogwo.baihongyu.com/

你可能感兴趣的文章
在不花一分钱的情况下,如何验证你的创业想法是否可行?《转》
查看>>
Linux/Android 性能优化工具 perf
查看>>
learn go recursive
查看>>
GitHub使用教程、注册与安装
查看>>
论以结果为导向
查看>>
CODE[VS] 1294 全排列
查看>>
<<The C Programming Language>>讀書筆記
查看>>
(转)CSS的display属性
查看>>
如何在目录中查找具有指定字符串的文件(shell)
查看>>
安卓学习笔记2
查看>>
angularJs按需加载代码(未验证)
查看>>
选择排序
查看>>
DotNet(C#)自定义运行时窗体设计器 一
查看>>
P2627 修剪草坪[dp][单调队列]
查看>>
JS详细入门教程(上)
查看>>
Android学习笔记21-ImageView获取网络图片
查看>>
线段树分治
查看>>
git代码冲突
查看>>
lnmp1.3 配置pathinfo---thinkphp3.2 亲测有效
查看>>
查看Linux 系统的配置和增减用户/增减组/增减权限
查看>>