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
世界上没有什么偶然,有的只有必然。——壹原侑子