构造函数
- 构造函数也是一个普通函数,创建方式和普通函数一样,但构造函数习惯上首字母大写。
- 构造函数和普通函数的区别在于:调用方式不一样。作用也不一样(new 构造函数用来新建实例对象)
我们目前接触的:
var x = new Object();
x = new Array();
x = new Function();
流程
A、立刻在堆内存中创建一个新的对象
B、将新建的对象设置为函数中的this
C、逐个执行函数中的代码
D、将新建的对象作为返回值
代码
//通过函数创建对象
function creatPerson(name, age) {
var obj = new Object();
obj.name = name;
obj.age = age;
return obj;
}
function creatCar(name, age) {
var obj = new Object();
obj.name = name;
obj.age = age;
return obj;
}
var p1 = creatPerson("Tom", 18);
var p2 = creatPerson("Jack", 16);
var p3 = creatPerson("Luna", 28);
var car = creatCar("保时捷", 1988);
// 通过构造函数创建对象。构造函数的函数名也称之为类
function Preson(name, age) {
this.name = name;
this.age = age;
this.sayHi = sayHi;
}
//将对象需要的方法写在外面,构造函数里赋值他的引用。这样节省内存。
function sayHi(){
console.log("hello,my name is " + this.name);
}
function Car(name, age) {
this.name = name;
this.age = age;
}
var p1 = new Preson("Tom", 18);
var p2 = new Preson("Tom", 18);
var p3 = new Preson("Tom", 18);
var p4 = new Preson("Tom", 18);
console.log(p1.sayHi === p2.sayHi);//true
|