|  | 
 
| 
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  JS 通过自定义构造函数创建对象 
 虽然直接创建自定义对象很方便也很直观,但如果要创建多个相同的对象,使用这种方法就会很繁琐。
 
 在 JavaScript 中可以自定义对象,通过调用自定义的构造函数可以创建并初始化一个新的对象。
 
 与普通函数不同,调用构造函数必须要使用 new 运算符。在构造函数的函数体内可以通过 this 关键字初始化对象的属性。
 
 例如,定义一个名为 Person 的构造函数:
 
 
 复制代码function People(name, sex, age) {
    this.name = name;
    this.sex = sex;
    this.age = age;
}
 利用 People 函数可以创建新对象:
 
 
 复制代码turtle = new People("小甲鱼", "男", 31);
 创建新对象后,可以使用 对象名.属性名 或 对象名["属性名"] 的格式访问对象的属性:
 
 
 复制代码turtle = new People("小甲鱼", "男", 31);
console.log("名字:" + turtle.name);
console.log("性别:" + turtle.sex);
console.log("年龄:" + turtle.age);
/*
或者这样:
console.log("名字:" + turtle["name"]);
console.log("性别:" + turtle["sex"]);
console.log("年龄:" + turtle["age"]);
*/
 执行结果:
 
 
 
 在定义构造函数时也可以定义对象的方法。例如:
 
 
 复制代码function People(name, sex, age) {
    this.name = name;
    this.sex = sex;
    this.age = age;
    this.printName = function() {
        console.log(this.name);
    };
    this.printSex = function() {
        console.log(this.sex);
    };
    this.printAge = function() {
        console.log(this.age);
    };
}
turtle = new People("小甲鱼", "男", 31);
turtle.printName();
turtle.printSex();
turtle.printAge();
 执行结果:
 
 
 
 唉调用构造函数创建对象时需要注意一个问题。如果在构造函数中定义了多个属性与方法,那么在每次创建对象实例时都会为该对象分配相同的属性和方法,这样会增加对内存的需求。这时可以通过 prototype 属性解决这个问题。
 
 prototype 属性是 JavaScript 中所有函数都具有的一个属性,该属性可以向对象中添加属性与方法。
 
 例如:
 
 
 复制代码function People(name, sex, age) {
    this.name = name;
    this.sex = sex;
    this.age = age;
}
People.prototype.show = function() {
    console.log(
        "姓名:" + this.name + "\n性别:" + this.sex + "\n年龄:" + this.age
    );
};
var turtle = new People("小甲鱼", "男", 31);
turtle.show();
 执行结果:
 
 
 | 
 |