new 一个对象和不用new创建一个对象有啥区别?

new是new的一个类,不new是字面量

当用new的时候,函数内部的this是一个新的对象,

如果不用new, 也就是把它当成一个普通的函数执行,它的this是window

 1 function Me(name,age,job){
 2               this.name = name;
 3               this.age = age;
 4               this.job = job;
 5             }
 6             var mefun1 = new Me('fei','20','it');
 7             var mefun2 = Me('fei','20','it');
 8             console.log(mefun1);//Me
 9             console.log(mefun2);//undefined
10             console.log(this.mefun1);//Me
11             console.log(this.mefun2);//undefined

 

 1     function Person(age){
 2                 this.age = age;
 3                 console.log(this);//Window
 4                 return age;//如果此处返回的是基本数据类型,则不使用new时,直接返回name数据,使用时返回带有name属性的Person对象
 5             }
 6             Person.prototype.name = "web";
 7             var person1 = new Person("16");
 8             var person2 = Person("18");
 9             console.log(person1);//Person {age:"16"}
10             console.log(person1.name);//web
11             console.log(person2);//18

 

posted @ 2020-11-09 13:49  俩只猫  阅读(838)  评论(0编辑  收藏  举报