💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
### 构造方法创建对象 ``` function Person(name, age){ this.name = name; this.age = age; this.sayName = function(){ alert(this.name); }; } var person1 = new Person("Nicholas", 29); var person2 = new Person("Greg", 27); ``` ### 问题 ? ``` 每个方法都要在每个实例上重新创建一遍 ``` ### 构造函数执行过程 ``` 1. 创建一个对象,我们把这个对象称为Person构造方法的实例, _person1 2. 创建一个内部对象,this,将this指向实例_person1 3. 执行函数内部的代码,其中,操作this的部分就是操作了该实例 4. 返回值 a. 如果函数没有返回值,那么就会返回构造函数的实例爬person1 b. 如果函数返回一个基本数据类型的值,那么本次构造函数的返回值就是该实例_person1 c. 如果函数返回一个复杂数据类型的值,那么本次函数的返回值就是该值 ``` ~~~ function Person1(name, age) { this.name = name; this.age = age; } var p1 = new Person1("sn", 11); console.log(p1) function Person2(name, age) { this.name = name; this.age = age; return "abc"; } var p2 = new Person2("sn", 11); console.log(p2) function Person3(name, age) { this.name = name; this.age = age; return [1,2,3]; } var p3 = new Person3("sn", 11); console.log(p3); ~~~ 输出 ``` Object { name: "sn", age: 11 } Object { name: "sn", age: 11 } Array(3) [ 1, 2, 3 ] ```