ES6学习笔记【三】

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunhaobo1996/article/details/80385001

ES6 学习笔记

明确函数的多重继承

ES5 函数具有多重功能,可以结合new关键字。

什么是new 关键字

对于New关键字我是这么理解的:
生成一个新的Object(Class)实例,运行其构造函数(若其本身即为一个函数,则运行其本身)。

如何在ES5中判断函数调用方法(是否是new调用)

使用 instanceof来进行判断。

function Person()
{
    if(this instanceof Person){
        ....
    }
    else{
        .....
    }
}

PS:ES6中使用 typeof new.target === classname 来替换 instanceof ,规避了classname.call的问题。在函数外使用new.target会报错。

箭头函数

  • 没有this、arguments和new.target绑定,其值由最近一层非箭头函数决定。
  • 不可以通过new关键字调用,因其没有构造方法。
  • 没有原型,因其不可通过new方法调用。
  • 不可改变this绑定,同时没有arguments对象。
  • 不支持重复的命名参数。
    当箭头函数只有一个参数时,可以直接写参数名。
let val = value => value;
//等同于
let val = function(value){
    return value;
}

若有两个及以上的参数,则添加小括号。

let sum = (num1,num2) => num1 + num2;

创建立即执行函数表达式

定义一个匿名函数并立刻调用,同时不保存任何对该函数的引用,即为立即执行函数表达式(IIFE)。这种模式在你想创建一个与其他程序隔离的作用域时非常方便。
资料如下:

https://zhuanlan.zhihu.com/p/22465092

举个例子:

let person = (function(value){
    return {
        getValue: function(){
            return value;
        }
    }
})("Hello!");
person.getValue();//Hello!

猜你喜欢

转载自blog.csdn.net/sunhaobo1996/article/details/80385001