讲解之前,我们先来看一个栗子:
function People(name,age){
this.name = name;
this.age = age;
this.sayHello = fucntion(){
console.log('hello',this.name);
}
}
People('harrisking','23');
new People('bob','22');
大家觉得上面的函数, People('harrisking','23');和new People('bob','22');输出的结果相同吗?
答案是,完全的不同。
People('harrisking','23');
是执行这个函数;而new People('bob','22');
不仅是执行这个函数,还是将它作为构造函数去创建对象(如果不传参数可以不加括号)。
一个函数前面加上new就是将它作为构造函数去创建对象。
这个对象中的属性就是你在这个函数中给this赋的值,例如上面函数中的this.name
。值就是传递进去的参数。