js中new操作符到底干了什么?

先看一个例子:

 function Person() {
     
            this.name = 'Andy';
            this.age = 20;
            this.say = function () {
     
                console.log('hello everybody');
            }
    }
    Person.prototype.test = function(){
     
        console.log('test');
    };
	let p1 = new Person();
	console.log(p1.name);//'Andy'
    console.log(p1.age);//20
    p1.say();//'hello everybody'
    p1.test();//'test'
new操作符的作用如下:

1.创建一个空对象
2.由this变量引用该对象
3.该对象继承该函数的原型
4.把属性和方法加入到this引用的对象中
5.新创建的对象由this引用,最后隐式地返回this。
过程如下:

let obj = {
     };//创建一个空对象
obj.__proto__ = Person.prototype;//该对象继承该函数的原型
Person.call(obj);//隐式地返回this

你可能感兴趣的:(js基础,this,new操作符,js面向对象)