一 构造函数
1)为什么需要构造函数
//1 {} 和 new Object 一次只能创建一个对象 //2 这里的构造函数 和 PHP里面的类 作用很相似
//3 有很多对象里面的属性和方法有大量是相同的 我们只能复制 造成代码冗余
2)什么是构造函数
//1 我们把对象里面一些相同的属性和方法抽象出来封装到函数中
//2 这个函数就是构造函数
3)声明构造函数
//基本语法
function 构造函数名() {
this.属性名 = 属性值;
this.方法名 = function () { }
}
4)调用构造函数
new 构造函数名();
5)代码示范
//定义一个 香港四大天王 的构造函数 function Star(name,age,sex) { this.name = name; this.age = age; this.sex = sex; this.sing = function (sang) { console.log(sang); } } //创建一个刘德华的对象 var liuDeHua = new Star('刘德华',25,'男'); console.log(typeof liuDeHua); //返回 object liuDeHua.sing('爱你一万年'); //创建一个郭富城的对象 var guoFuChen = new Star('郭富城',36,'男'); guoFuChen.sing('浪漫樱花'); //--------注意事项---------- //1 构造函数名用大驼峰命名 //2 构造函数不用 return 就可以放回值 //3 构造函数返回的一定是一个对象 可以用 typeof 检测 //4 调用构造函数一定用 new 关键字 //5 定义构造方法的时候 属性和方法前面一定加 this. //6 构造方法参数主要接受属性变量 里面的函数单独接受实参
二 构造函数和对象的区别
//1 构造函数: 泛指某一大类 如: 汽车 明星等 和PHP中的 class 类似 //2 对象: 特指一个具体的事务 比如:李白这个人 或 我写代码的电脑
//3 我们用构造函数创建对象的过程,也称 对象的实例化 或 实例化一个对象
一套源码是构造函数 基于这套源码运行的网站是一个个对象实例
三 new关键字执行过程
//1 在内存中创建一个新的空对象
//2 让 this 指向这个空对象
//3 执行构造函数里面的代码 给空对象添加属性和方法 并进行赋值
//4 返回这个对象 [ 所有不需要 return ]