09JavaScript中面向对象!

 1 <script type="text/javascript">
 2 
 3 //当编写方法代码的时候,如果这个方法将来只是作为一个普通的方法来调用,那么就遵循“骆驼命名法”,第一个单词首字母小写,以后的每个单词首字母大写。
 4 //如果这个方法是用来创建的对象的,那么就是用“帕斯卡命名法”,每个单词的首字母都大写。 
 5 
 6    function Person() {
 7 
 8                 }
 9 
10                 //对于一个方法如果直接调用,那么就认为是一个普通的方法,
11                 var p=Person(); //表示直接调用Person()方法
12 
13                 var p = new Person(); //通过new关键字调用Person()方法,表示创建一个Person类型的对象。
14                 // 如果没有该属性,会自动创建该属性
15                 p.name = '朱海桥'; 
16                 p.age = 18;
17                 p.email = 'zhq@163.com';
18 
19                 p.sayHi = function () {
20                     alert('我是:' + this.name + ',今年:' + this.age + '岁了,邮箱是:' + this.email);
21                 };
22 
23                 p.sayHi();
24 
25 
26 
27   //-----------------创建一个Person构造函数-------------------
28         function Person(name, age, email) {
29             //this 指Person
30             this.user_name = name;
31             this.user_age = age;
32             this.user_email = email;
33 
34             this.sayHi = function () {
35                 alert(this.user_name + '     ' + this.user_age + '    ' + this.user_email);
36             };
37 
38             // 在当前构造函数中增加一个私有的成员
39             var _gender; 
40 
41             //为_gender这个"私有"成员封装两个公有的方法
42             this.get_gender = function () {
43                 return _gender;
44             };
45             //设置值的方法
46             this.set_gender = function (gender) {
47                 if (gender == '男' || gender == '女') {
48                     _gender = gender;
49                 } else {
50                     alert('性别有误!');
51                 }
52             };
53 
54         }
55 
56 
57         var mll = new Person('张三', 22, 'mll@yahoo.com');
58         mll.set_gender('男');
59 
60         alert(mll.get_gender());
61 
62         mll.sayHi();
63 
64 
65 
66 </script>
原文地址:https://www.cnblogs.com/Forever-IT/p/5198754.html