用new调用函数的执行过程
new
* 一元运算符,后面只能跟函数,用来调用函数
*
* 调用函数的方式
* 1、new 函数名 ( 没有参数的情况下用这种方式 )
* 2、new 函数名()
用new调用函数的执行过程
简单来说,new调用一个函数,执行了该函数,然后返回一个对象(用变量接收这个对象) 。
function f1(){
console.log(this)
}
f1() //window(普通函数)
new f1; //f1{} 和new f1()效果一样 由new运行,称为构造函数,改变了 this指向
f1() //window ,没用new运行,还是普通函数
* 1、自动创建一个空对象
* 2、把函数内部的this指向创建的这个对象(也就是构造函数的作用,构造新对象,设置对象的属性和方法(构造函数里面写那么多this的作用))
* 3、在函数执行完成以后自动返回创建的那个对象,即使函数里面没有return
函数里有return
(1、return的是对象
返回这个对象
2、return的是非对象
返回自动创建的那个对象 )
* 注意:
* 1、用new调用的函数,得到的永远是一个对象,不管函数有没有返回值
* 2、使用new调用函数,这个函数就是一个用来创建对象的函数(构造函数)
*/
构造函数的调用其中有几步
是:
1.创建一个新对象;
2.将构造函数的作用域赋给新对象(因此this就指向了这个新对象);
3.执行构造函数中的代码;
4.返回新对象;