zoukankan      html  css  js  c++  java
  • 几种常用的JS类定义方法(转)

     1 // 方法1 对象直接量
     2 var obj1 = {
     3     v1 : "",
     4     get_v1 : function() {
     5         return this.v1;
     6     },
     7     set_v1 : function(v) {
     8         this.v1 = v;
     9     }
    10 };
    11 
    12 // 方法2 定义函数对象
    13 var Obj = function() {
    14     var v1 = "";
    15     this.get_v1 = function() {
    16         return this.v1;
    17     };
    18     this.set_v1 = function(v) {
    19         this.v1 = v;
    20     }
    21 };
    22 
    23 // 方法3 原型继承
    24 var Obj3 = new Function();
    25 Obj3.prototype = {
    26     v1 : "",
    27     get_v1 : function() {
    28         return this.v1;
    29     },
    30     set_v1 : function(v) {
    31         this.v1 = v;
    32     }
    33 };
    34 
    35 // 方法4 工厂模式
    36 function loadObj() {
    37     var tmp = new Object();
    38     tmp.v1 = "";
    39     tmp.get_v1 = function() {
    40         return tmp.v1;
    41     };
    42     tmp.set_v1 = function(v) {
    43         tmp.v1 = v;
    44     };
    45     return tmp;
    46 }
    47 
    48 obj1.set_v1('hello1');
    49 alert(obj1.get_v1());
    50 
    51 var obj2 = new Obj();
    52 obj2.set_v1('hello2');
    53 alert(obj2.get_v1());
    54 
    55 var obj3 = new Obj3();
    56 obj3.set_v1('hello3');
    57 alert(obj3.get_v1());
    58 
    59 var obj4 = loadObj();
    60 obj4.set_v1('hello4');
    61 alert(obj4.get_v1());
    62 
    63 alert(obj1);
    64 alert(obj2);
    65 alert(obj3);
    66 alert(obj4);
    67 
    68 类的基本使用
    69 
    70 /**
    71 * 定义一个类User,js中使用构造函数实现
    72 */
    73 User = function(sname,spass){
    74 //定义属性
    75 this.name = sname;
    76 this.pass = spass;
    77 }
    78 
    79 // js通过prototype动态为类添加方法
    80 User.prototype.sayHello = function(){
    81 alert("sayHello():Hello everyone!");
    82 };
    83 
    84 // js通过prototype动态为类添加属性
    85 User.prototype.sex = "男";
    86 
    87 // 测试函数
    88 function testUser(){
    89 var user = new User('Dream','123');
    90 alert("姓名:"+user.name+"
    "+"密码:"+user.pass+"
    "+"性别:"+user.sex);
    91 user.sayHello();
    92 }
  • 相关阅读:
    电源
    SM2947
    网表
    cadence设计思路
    青山依旧在,几度夕阳红
    乐观锁与悲观锁
    笔记
    强弱软虚引用
    缓存相关
    dubbo
  • 原文地址:https://www.cnblogs.com/nele/p/4803853.html
Copyright © 2011-2022 走看看