js类的静态属性应该如何抽象?

基类

var BaseUnit = function(config) {
        var me = this;
        me.init();
    };

子类1:

var ByteUnit = function(config) {
        var me = this;

        BaseUnit.apply(me, arguments);
    };

    ByteUnit.prototype = {
        constructor: ByteUnit,
        init: function(){
            ByteUnit.prototype.conversionTable = {};
            // 对ByteUnit.prototype.conversionTable进行操作
        }
        
    }

    Util.inherit(ByteUnit, BaseUnit);

子类2

var FrequenceUnit = function(config) {
        var me = this;
        FrequenceUnit.instance = me;
    };

    FrequenceUnit.prototype = {
        constructor: FrequenceUnit,
        init: function(){
            FrequenceUnit.prototype.conversionTable = {}
            // 对FrequenceUnit.prototype.conversionTable进行操作
        }
        
    }

    Util.inherit(FrequenceUnit, BaseUnit);

其实,子类中conversionTable的数据结构和处理方式一摸一样。

只是,因为它是静态属性,所以定义在每个子类的prototype上,并且每个类中都实现一次对conversionTable的处理方法。

想把conversionTable属性和操作,放到基类中,如何做???

时间: 2024-10-10 07:19:30

js类的静态属性应该如何抽象?的相关文章

JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法

相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对象之间的赋值,for...in语句,delete使用,成员方法,json对象的使用,prototype的使用,原型继承与原型链 JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法 1.Object类 在JS中,Object是所有类的基

python的类的 静态属性 类方法 静态方法

一.静态属性 静态属性说的就是数据属性 1.定义一个房间的类,求下这个房间的面积 class Room: def __init__(self,name,ower,width,length,heigh): self.Name=name self.Ower=ower self.Width=width self.Length=length self.Heigh=heigh r1=Room("厕所","北爷",2,2,20000)#实例化出来一个实例r1,实例化的过程就是执

MobX基础 ----- 类的静态属性和装饰器

当我们使用MobX的时候,首先要声明一个store, 用来保存状态,它的最基本的语法 如下: class Todo { @observable title = ""; @observable finished = false; } 其中 @observable 是装饰器写法, title= '' 是实例属性的新的写法,这两个语法,都是es7 中的提案,但都没有被采纳, 之所以被使用,是因为有babel 时进行转译. 首先看一下类的实例属性的新写法, 这是ES7 中关于静态属性的一个提案

spring为类的静态属性实现注入

我们知道,正常情况下,spring的一个bean要依赖其他资源,如properties或其他bean,直接利用@Value或@Autowired就可以了.这两个注解就相当于spring application context xml文件定义bean时的property节点.相当于调用了每个属性的set方法. <bean id="person" class="com.myapp.core.spel.xml.Person"> <property nam

JS 实现继承静态属性

在应用中,我们常常设计继承关系,当然静态属性也是很简单的,但是如果把这两者结合到一起,还是需要一些技巧的. 场景描述: 父类:定义静态属性类型,仅仅起到描述的作用,具体的实例化交给每一个子类去做. 定义抽象方法,并且在方法中会调用之前定义的静态属性. 子类:继承父类.子类对静态属性进行赋值. 子类的对象,调用父类的接口. 实现继承代码如下(不是重点): function inherit(sub, sup) {     function F() {}     F.prototype = sup.p

java 反射获取类的静态属性值

public class AppTest { private NodeClass nodeClass; public static String hehe = "hehe"; public String xixi = "xixi"; public void test() { Field[] fields = AppTest.class.getDeclaredFields(); try { for (Field field : fields) { field.setA

类和对象:静态属性、静态方法

在PHP中,使用关键字 static 修饰成员属性和成员方法被称为静态属性和静态方法.静态属性和静态方法不需要在类被实例化的情况下可以直接使用. 静态属性 与普通的成员属性不同,静态属性属于类本身而不属于类的任何实例.静态属性可以被看做是存储在类当中的全局变量,可以在任何地方通过类来访问它们. 由于静态属性不受任何具体对象的限制,所以不需要建立类实例,而可以直接引用类中的静态属性,使用语法格式如下: 类名称::$静态属性名称 其中,符号”::”被称作范围解析操作符,它可以用于访问静态成员.静态方

从JVM内存管理的角度谈谈JAVA类的静态方法和静态属性

在JVM中,内存分为两个部分,Stack(栈)和Heap(堆),这里,我们从JVM的内存管理原理的角度来认识Stack和Heap,并通过这些原理认清Java中静态方法和静态属性的问题. 一般,JVM的内存分为两部分:Stack和Heap.(stack和heap都是位于RAM中的) stack(栈)是JVM的内存指令区.stack管理很简单,push一定长度字节的数据或者指令,stack指针压栈相应的字节位移:pop一定字节长度数据或者指令,stack指针弹栈.stack的速度很快,管理很简单,并

php函数、类和对象以及类的封装、继承、类的静态方法、静态属性

1.函数     php内置函数可以直接使用,如果没有安装php扩展即可     自定义函数 //函数function 函数名 function dump($var = null){ //支出默认参数值 echo '<pre/>'; var_dump($var); } 2.类(class)和对象( new Obj) <?php //定义一个人的类,现在还不是对象 class Person { //私有属性 private $eye = '大眼睛'; private $mouth = '小