8_2:对象:构造函数

一  构造函数

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 ]
原文地址:https://www.cnblogs.com/fuyunlin/p/14413520.html