<!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>