<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
/*
构造函数和普通函数没区别,首字母大写
调用方式不同:普通直接调,构造加new
*/
/*
构造函数执行流程:
一、首先立刻创建一个新对象
二、将新建对象设为函数中的this,在构造函数中可以使用this来引用新建的对象
三、逐行执行函数中的代码
四、将新建的对象作为返回值返回
*/
/*
使用同一个构造函数创建的对象,我们称为一类对象,也将一个构造函数称为一个类
该类的实例就是通过该类对象创造的实例
*/
/*
使用构造函数的好处,可以给不同的对象分类。
①普通函数在其内部new,得到的是单一的对象类型;而构造函数是先定义不同的函数,在外面再new这些不同的类,赋 值的对象类型也随之不同
②构造函数自动创建对象和return,普通函数要手动
*/
//this的情况
//一、以函数的形式调用时,this是Windows对象
//二、以方法的形式调用时,哪个对象调用方法this就是谁
//三、当以构造函数的形式调用时,this就是新创建的那个实例
function Person(name,age,gender){
this.name=name;
this.age=age;
this.gender=gender;
this.sayName=fun;
};
function fun(){
alert("你好:"+this.name);
}
var per=new Person("孙悟空",18,"男");
var per2=new Person("猪八戒",18,"男");
console.log(per2.sayName());
</script>
</head>
<body>
</body>
</html>