构造函数的执行过程

构造函数的执行过程

var p1=new Person();

  • 1、创建一个对象 (我们把这个对象称之为Person构造函数的实例)- _p1
  • 2、创建一个内部对象,this,将this指向该实例(_p1)
  • 3、执行函数内部的代码,其中,操作this的部分就是操作了该实例(_p1)
  • 4、返回值:
    • a、如果函数没有返回值(没有return语句),那么就会返回构造函数的实例(p1)
    • b、如果函数返回了一个基本数据类型的值,那么本次构造函数的返回值是该实例(_p1)
        function fn(){
            
        }
        var f1=new fn();    //f1就是fn的实例
    
        function fn2(){
            return "abc";
        }
        var f2=new fn2();   //f2是fn2构造函数的实例
    
    • c、如果函数返回了一个复杂数据类型的值,那么本次函数的返回值就是该值
        function fn3(){
            return [1,3,5]; 
            //数组是一个对象类型的值,
            //所以数组是一个复杂数据类型的值
            //-->本次构造函数的真正返回值就是该数组
            //-->不再是fn3构造函数的实例
        }
        var f3=new fn3();   //f3还是fn3的实例吗?错
        //f3值为[1,3,5]
    

猜你喜欢

转载自blog.csdn.net/qq_43294510/article/details/89886245
今日推荐