1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title></title>
6 <script type="text/javascript">
7
8 /*
9 * 创建一个构造函数,专门用来创建Person对象的
10 * 构造函数就是一个普通的函数,创建方式和普通函数没有区别,
11 * 不同的是构造函数习惯上首字母大写
12 *
13 * 构造函数和普通函数的区别就是调用方式的不同
14 * 普通函数是直接调用,而构造函数需要使用new关键字来调用
15 *
16 * 构造函数的执行流程:
17 * 1.立刻创建一个新的对象
18 * 2.将新建的对象设置为函数中this,在构造函数中可以使用this来引用新建的对象
19 * 3.逐行执行函数中的代码
20 * 4.将新建的对象作为返回值返回
21 *
22 * 使用同一个构造函数创建的对象,我们称为一类对象,也将一个构造函数称为一个类。
23 * 我们将通过一个构造函数创建的对象,称为是该类的实例
24 *
25 * this的情况:
26 * 1.当以函数的形式调用时,this是window
27 * 2.当以方法的形式调用时,谁调用方法this就是谁
28 * 3.当以构造函数的形式调用时,this就是新创建的那个对象
29 *
30 */
31
32 function Person(name , age , gender){
33 this.name = name;
34 this.age = age;
35 this.gender = gender;
36 this.sayName = function(){
37 alert(this.name);
38 };
39 }
40
41 function Dog(){
42
43 }
44
45 var per = new Person("孙悟空",18,"男");
46 var per2 = new Person("玉兔精",16,"女");
47 var per3 = new Person("奔波霸",38,"男");
48
49 var dog = new Dog();
50
51 console.log(JSON.stringify(per));//{"name":"孙悟空","age":18,"gender":"男"}
52 console.log(JSON.stringify(dog));//{}
53
54 //-------------------------------------------------------------------------------
55
56 /*
57 * 使用instanceof可以检查一个对象是否是一个类的实例
58 * 语法:
59 * 对象 instanceof 构造函数
60 * 如果是,则返回true,否则返回false
61 */
62 console.log(per instanceof Person);//true
63 console.log(dog instanceof Person);//false
64
65
66 /*
67 * 所有的对象都是Object的后代,
68 * 所以任何对象和Object做instanceof检查时都会返回true
69 */
70 console.log(dog instanceof Object);//true
71
72
73
74 </script>
75 </head>
76 <body>
77 </body>
78 </html>