我是靠谱客的博主 过时香菇,最近开发中收集的这篇文章主要介绍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://extjs.org.cn/node/403

转载于:https://www.cnblogs.com/coolstr/archive/2008/09/01/1281340.html

最后

以上就是过时香菇为你收集整理的Javascript中两种最通用的定义类的方法的全部内容,希望文章能够帮你解决Javascript中两种最通用的定义类的方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部