JS构造函数是初始化一个实例对象,对象的prototype属性则继承这个实例对象
自定义构造函数过程:
1)内存开辟空间,存储新创建的对象new Object();
2)会把this设置为当前对象
3)执行函数内部的代码,设置对象的属性和方法
4)返回新创建的对象
代码示例:
function creatStudent(name,age,sex,score){ //通过构造函数,创建对象 var student = new Object(); //对象的属性 student.name=name; student.age=age; student.sex=sex; student.score=score; //对象的方法 student.sayHi=function(){ //this 当前这个对象 console.log("大家好,我是"+this.name); } //返回对象 return student; }
注意:
1,构造函数没有返回任何东西。new 操作符会自动创建给定的类型并返回他们,当调用构造函数时,new会自动创建this对象,且类型就是构造函数类型。
2,可以在构造函数中调用return.如果返回的值是一个对象,它会代替新创建的对象实例返回。如果返回的值是一个原始类型,则会被忽略,新创建的实例会被返回。
3,因为构造函数也是函数,所以可以直接被调用,但是它的返回值为undefine,此时构造函数里面的this对象等于全局this对象。this.name是创建一个全局变量name。在严格模式下,当你不通过new 调用student构造函数会出现错误。