6.JavaScript中的new.target

new.target

该表达式在函数中使用,返回的是当前的构造函数。若该函数不是通过new调用的,则返回undefined

通常用于判断某个函数是否是通过new在调用

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        function User(name, age, gender){//构造函数
            console.log(new.target);
            if(new.target === User){//通过new关键字调用构造函数
                this.name = name;
                this.age = age;
                this.gender = gender;
            }else{
                return {
                    name :name,
                    age :age,
                    gender:gender
                };
            }
        }

        var u1 = new User("张三", 18, "男");//通过new调用User构造函数
        var u2 = User("李四", 21, "女");//直接调用User函数
    </script>
</body>

</html>
index.html
原文地址:https://www.cnblogs.com/lanshanxiao/p/12747339.html