Javascript进阶课程---1、使用工厂模式创建对象

Javascript进阶课程---1、使用工厂模式创建对象

一、总结

一句话总结:

使用工厂模式创建对象 本质: 利用函数封装代码(创建对象的代码),方便对代码进行复用
function createPeople(name,age) {
    //创建字面量的方式
    var people={
        name:name,
        age:age,
        say:function () {
            console.log('我叫'+this.name+', 今年'+this.age+'岁。');
        }
    };
    return people;
}

var shaHeShang=createPeople('沙和尚',15);
console.log(shaHeShang);
shaHeShang.say();

var xiaoBaiLong=createPeople('小白龙',13);
console.log(xiaoBaiLong);
xiaoBaiLong.say();

二、使用工厂方法创建对象

博客对应课程的视频位置:1、使用工厂模式创建对象
https://www.fanrenyi.com/video/21/182

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>1、使用工厂模式创建对象</title>
 6 </head>
 7 <body>
 8 <!--
 9 
10 函数的作用:封装代码,方便对代码进行复用
11 
12 使用工厂模式创建对象 本质: 利用函数封装代码(创建对象的代码),方便对代码进行复用
13 
14 -->
15 <script>
16     //创建对象
17     // var sunWuKong=new Object();
18     // sunWuKong.name='孙悟空';
19     // sunWuKong.age='999';
20     // sunWuKong.say=function () {
21     //     console.log('我叫'+this.name+', 今年'+this.age+'岁。');
22     // };
23     // console.log(sunWuKong);
24     // sunWuKong.say();
25 
26     //js字面量方式创建对象,
27     // var zhuBaJie={
28     //     name:'猪八戒',
29     //     age:3,
30     //     say:function () {
31     //         console.log('我叫'+this.name+', 今年'+this.age+'岁。');
32     //     }
33     // };
34     // console.log(zhuBaJie);
35     // zhuBaJie.say();
36 
37 
38     //需求:要创建一个沙和尚的对象
39     // var shaHeShang=new Object();
40     // shaHeShang.name='沙和尚';
41     // shaHeShang.age='9';
42     // shaHeShang.say=function () {
43     //     console.log('我叫'+this.name+', 今年'+this.age+'岁。');
44     // };
45     // console.log(shaHeShang);
46     // shaHeShang.say();
47 
48     function createPeople(name,age) {
49         // var people=new Object();
50         // people.name=name;
51         // people.age=age;
52         // people.say=function () {
53         //     console.log('我叫'+this.name+', 今年'+this.age+'岁。');
54         // };
55         // return people;
56 
57         //创建字面量的方式
58         var people={
59             name:name,
60             age:age,
61             say:function () {
62                 console.log('我叫'+this.name+', 今年'+this.age+'岁。');
63             }
64         };
65         return people;
66 
67     }
68     // var shaHeShang=createPeople();
69     // console.log(shaHeShang);
70     // shaHeShang.say();
71 
72     var shaHeShang=createPeople('沙和尚',15);
73     console.log(shaHeShang);
74     shaHeShang.say();
75 
76     var xiaoBaiLong=createPeople('小白龙',13);
77     console.log(xiaoBaiLong);
78     xiaoBaiLong.say();
79 </script>
80 </body>
81 </html>

 
原文地址:https://www.cnblogs.com/Renyi-Fan/p/12599321.html