首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScript|箭头函数用法

问题描述 JavaScript ES6标准新增了比较重要一种新函数:Arrow Function(箭头函数),但大多数人都不能很好了解箭头函数用法,也不能区别箭头函数和function(),所以接下来我们就来介绍一下箭头函数...箭头函数有两种格式,一种只包含一个表达式,就如上面的举例,你会发现它没有return,因为在箭头函数,只要一个表达式,并且省略了包围 { } 的话,就意味着表达式前面有一个隐含 return。...如上例子,箭头函数this总是指向语法作用域,也就是此处外部调用者xiaoming对象,故而此处ming.getAge()返回值为21。...也就是说,使用箭头函数,就不需要以前那种hack写法了: var that = this; 由于this在箭头函数已经按照词法作用域绑定了,所以用call()或者apply()调用函数时候,无法对...如果要用,可以用Rest参数代替; d.不可以使用yield命令,因此箭头函数不能用作Generator函数; 结语 箭头函数this指向十分重要,需要注意,有时候为了节约时间,可以使用箭头函数代替

73120

箭头函数this值

其实那只是其中一个因素,还有一个因素就是在ZnHobbies方法this已经不属于上一个区块,而这里this并没有name值。...所以 解决办法其中一个就是在ZnHobbies函数写入 var that = this; 然后将this替换成that,所以输出结果,就有了lucifer名字啦。...还有的一个办法就是将ZnHobbies函数下map改写成箭头函数: ZnHobbies: function () { this.hobbies.map((hobby)=...为什么箭头函数可以达到这样效果呢?是因为箭头函数没有它自己'this'值。它this值是继承于它父作用域。...所以它不会随着调用方法改变而改变,所以这里this值就指向它父级作用域,而上一个this指向是Lucifer这个Object。所以我们就能准确得到Lucifername值啦。

2.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JavaSynchronized用法

    版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同许可协议分发本文 (Creative Commons) 引出: Javasynchronized...---- 一、修饰一个代码块 修饰结果: 一个线程访问一个对象synchronized(this)同步代码块时,其他试图访问该对象线程将被阻塞; 多个线程访问各子对象即使有synchronized...如果在父类某个方法使用了synchronized关键字,而在子类覆盖了这个方法,在子类这个方法默认情况下并不是同步,而必须显式地在子类这个方法中加上synchronized关键字才可以。...当然,还可以在子类方法调用父类相应方法,这样虽然子类方法不是同步,但子类调用了父类同步方法,因此,子类方法也就相当于同步了。...---- 四、修饰一个修饰一个静态方法 Synchronized也可修饰一个静态方法,用法如下: public synchronized static void method() { // todo

    3.3K30

    javastatic用法

    java访问权限控制 文章目录 javastatic用法 static修饰成员变量 类成员变量 static修饰方法 static修饰代码块 javastatic用法javastatic...修饰成员变量 成员变量 静态变量,可以直接通过类名去访问 类成员变量 类成员变量包括 类变量(静态变量) 被static修饰变量 在内存只有一个拷贝 类内部,可以在任何方法内直接访问静态变量...其它类,可以直接通过类名访问 实例变量 没有被static修饰变量 没创建一个实例,就为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响 package cn.zhz.Kind.dh...this // System.out.println(this.age); // m1();//在静态方法不可以调用实例方法 //在静态方法不可以调用实例变量 // System.out.println...程序入口main()方法就是最常用静态方法 public static void main(String [] args){ } static修饰代码块 静态代码块,当java虚拟机加载类时

    52710

    JavaSynchronized用法

    本文将接着讲一下Java线程同步一个重要概念synchronized. synchronized是Java关键字,是一种同步锁。它修饰对象有以下几种:  1....我们看下面一个例子: 【Demo1】:synchronized用法 <code class="language-<em>java</em> hljs has-numbering" style="display: block...如果在父类<em>中</em><em>的</em>某个方法使用了synchronized关键字,而在子类<em>中</em>覆盖了这个方法,在子类<em>中</em><em>的</em>这个方法默认情况下并不是同步<em>的</em>,而必须显式地在子类<em>的</em>这个方法中加上synchronized关键字才可以。...当然,还可以在子类方法<em>中</em>调用父类<em>中</em>相应<em>的</em>方法,这样虽然子类<em>中</em><em>的</em>方法不是同步<em>的</em>,但子类调用了父类<em>的</em>同步方法,因此,子类<em>的</em>方法也就相当于同步了。...---- ---- 修饰一个类 Synchronized还可作用于一个类,<em>用法</em>如下: <code class="hljs java has-numbering" style="display: block

    57810

    javafinalized用法_java引用类型

    一个例子 Object类是所有类父类,如果你去查看java.lang.Object类源码,你会发现里面有个finalize方法,这个方法没有默认实现,需要子类根据实际情况重写这个方法,但是如果不恰当使用...类里也有一个引用队列,这个引用队列是JVM和垃圾回收器打交道唯一途径,当垃圾回收器需要回收该对象时,会把该对象放到引用队列,这样java.lang.ref.Finalizer类就可以从队列取出该对象...$100(Finalizer.java:14) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160) 这个线程唯一职责就是不断从...java.lang.ref.Finalizer.ReferenceQueue队列取对象,当一个对象进入到队列,finalizer线程就执行对象finalize方法并且把对象从队列删除,因此在下一次...histo:live 8700|head -n 10命令强制触发一次GC,结果和前面的分析一致,Finalizer对象都放到引用队列,并依次调用了对象finalize方法,内存java.lang.ref.Finalizer

    2K10

    JavaScript箭头函数

    你可以把函数存储在变量,把它们作为参数传递给其他函数,并从其他函数把它们作为值返回。你可以使用JavaScript箭头函数来做所有这些事情。 无圆括号语法 在上述示例,函数是没有参数。...在本例,你必须在胖箭头符号(=>)之前添加一对空圆括号()。...因此,函数处理器this也被绑定到全局作用域中--也就是Window对象。 因此,如果你想让this引用程序开始按钮,正确做法是使用一个常规函数,而不是一个箭头函数。...匿名箭头函数 在上面的演示,接下来要注意是.setInterval()方法代码。在这里,你也会发现一个匿名函数,但这次是一个箭头函数。为什么?...这意味着arguments对象在箭头函数是不可用

    2.1K20

    javainstanceof用法

    大家好,又见面了,我是你们朋友全栈君。 1. java instanceof介绍: 首先,java instanceof是一个运算符,而且是二目运算符,即有两个操作数。...该运算符是用来在运行时指出对象是否是特定类一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它子类一个实例。...用法: result = object instanceof class 参数: Result:布尔类型。 Object:必选项。任意对象表达式。 Class:必选项。任意已定义对象类。...,B又是A一个实现类,所以结果为true res = a instanceof B; //因为a是B类型实例,所以结果为true B b2=(C)new C(); res...= b2 instanceof A; //因为b2是C类型实例,而C是B子类,B又是A一个实现类,所以结果为true res = b2 instanceof B; //因为b2是C类型实例

    1.4K30

    JavacompareTo用法

    大家好,又见面了,我是你们朋友全栈君。...Javacompareto方法,返回参与比较前后两个字符串asc码差值 String a = “a”; String b = “b”; System.out.println(a.compareTo...参与比较两个字符串如果首字符相同,则比较下一个字符,直到有不同为止,返回该不同字符asc码差值 String a = “abc”; String b = “abedfg”; System.out.println...(a.compareTo(b)); 输出-2 1 2 3 4 5 两个字符串不一样长,可以参与比较字符又完全一样,则返回两个字符串长度差值 String a = “abc”; String...“abcde”; String b = “abcd”; System.out.println(a.compareTo(b)); 输出1 1 2 3 4 5 目前compareTo项目中用途是比较版本号高低

    57720

    JavaScanner用法解析

    大家好,又见面了,我是你们朋友全栈君。 一、Scanner类简介 Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本实用程序。...简介 Scanner类是java.util包一个类 作用 常用于控制台输入,当需要使用控制台输入时即可调用这个类 二、Scanner类用法 使用方法 1、首先需要构造一个...Scanner类对象,并且与标准输入流System.in关联 Scanner sc=new Scanner(System.in); 2、调用Scanner类对象sc方法从输入流获取你需要输入...说明: 当创建了一个Scanner类对象之后,控制台会一直等待输入,直到敲回车键结束,把所输入内容传给对象sc,若要获取需要内容,调用sc方法即可 三、常用方法 1、nextInt...(注:输入数字不能夹杂除数字、空格、回车之外其他字符,否则会报错) 2、nextDouble()用法同理nextInt(),注意:nextInt无法读取小数,否则会报错。

    1.1K30
    领券