创建对象常用方式
构造函数模式+原型模式
function Person(name, age) {
this.name = name;//this此时是在为new出来的Person对象实例,添加属性name
this.age = age;// this此时是在为new出来的Person对象实例,添加属性age
}
//为Person方法添加了一个原型方法sayHi
Person.prototype.sayHi = function () {
alert(this.name + ":" + this.age);
}
// new 1.开辟空间 2.创建对象 3.将对象传给构造函数的this 4.调用构造函数 5.返回对象
var p1 = new Person("james", 18);
var p2 = new Person("Greg", 20);
p1.sayHi();
p2.sayHi();
构造函数模式
缺点:为每个对象的实例都添加了一个方法实例,即每个方法都要在每个实例上重新创建一遍
function Person(name1, age1) {
this.name = name1;
this.age = age1;
this.sayHi = function () {
alert(this.name + ":" + this.age);
}
}
var p1 = new Person("Van", 23);
var p2 = new Person("Li", 20);
p1.sayHi();
p2.sayHi();