this的三种指向:
1 object.function() //function里面this指向object
2 function() //function里面的this指向window
3 new function() //function里面的this指向new,new开辟了一块新空间,相当于new做主语调用了funcition--->可认为是new.function
对象的三种创建方法:
1 var obj={}
2 var obj=new object(); obj.属性名=值";
3 var obj=new function(实参);
当需要创建多个结构相同的对象时,用构造函数
eg: function Emp($name,$age){
this.name=$name;this.age=$age;
this.intro=function(){console.log(`I'm ${this.name},I'm${this.age}`);}
}
var caiBiBa=new Emp("caiBiBa",18);
var Tdog=new Emp("Tdog",20);
/*此时的执行顺序为:
1.Emp,caiBiBa,Tdog申明提前
2.new一个新空间(新地址)
3.Emp()执行,生成scope chain,local为变量$name,$age,这两局部变量从实参得来(this.name,this.age这样有.的不是变量,而是对象里的属性值)
4.this指向的是new,此时在new的空间里强行创建属性名name和age,值为实参
5.function(){}意思是创建函数(没有()就只是创建的意思),并把函数名强行放进new空间里,因为函数是引用类型,所以new空间里的intro保存函数地址
6.把结果的新地址给caiBiBa */