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>