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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM