代码改变世界

JS构造函数

2017-04-27 20:46  心猿意‘码’  阅读(296)  评论(0编辑  收藏  举报

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构造函数会出现错误。