• javascript定义类和实例化类


         在Javascript中,一切都是对象,包括函数。在Javascript中并没有真正的类,不能像C#,PHP等语言中用 class xxx来定义。但Javascript中提供了一种折中的方案:把对象定义描述为对象的配方(先看一下例子会比较容易理解)。

         定义类的方法有很多种,这里有两中较为通用的方法,大家参考一下。

         这两种方法均可以解决构造函数会重复生成函数,为每个对象都创建独立版本的函数的问题。

    解决了重复初始化函数和函数共享的问题。


    1、混合的构造函数/原型方式
    //混合的构造函数/原型方式
    //创建对象
    function Card(sID,ourName){
        
    this.ID = sID;
        
    this.OurName = ourName;
        
    this.Balance = 0;
    }

    Card.prototype.SaveMoney 
    = function(money){
        
    this.Balance += money;
    };

    Card.prototype.ShowBalance 
    = function(){
        alert(
    this.Balance);
    };

    //使用对象
    var cardAA = new Card(1000,'james');
    var cardBB 
    = new Card(1001,'sun');

    cardAA.SaveMoney(
    30);
    cardBB.SaveMoney(
    80);

    cardAA.ShowBalance();
    cardBB.ShowBalance();


    2、动态原型方法
    //动态原型方法
    //创建对象
    function Card(sID,ourName){
        
    this.ID = sID;
        
    this.OurName = ourName;
        
    this.Balance = 0;
        
    if(typeof Card._initialized == "undefined"){
            Card.prototype.SaveMoney 
    = function(money){
                
    this.Balance += money;
            };

            Card.prototype.ShowBalance 
    = function(){
                alert(
    this.Balance);
            };
            Card._initialized 
    = true;
        }
    }

    //使用对象
    var cardAA = new Card(1000,'james');
    var cardBB 
    = new Card(1001,'sun');

    cardAA.SaveMoney(
    30);
    cardBB.SaveMoney(
    80);

    cardAA.ShowBalance();
    cardBB.ShowBalance();


    转自http://www.cnblogs.com/coolstr/archive/2008/09/01/1281340.html

  • 相关阅读:
    Amazon Route 53
    监控应用程序负载均衡器ALB
    DynamoDB 流
    DynamoDB 中的限制
    Amazon SNS 消息属性
    关于基于 SAML 2.0 的联合身份验证
    Amazon EBS 性能提示
    Laravel5.1注册中间件的三种场景
    编译LNMP环境
    傻瓜式搭建LAMP环境
  • 原文地址:https://www.cnblogs.com/luyinghuai/p/1282436.html
Copyright © 2020-2023  润新知