javascript代码,希望高手分析解释一下下面这段函数是啥意思?谢谢了!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript代码,希望高手分析解释一下下面这段函数是啥意思?谢谢了!相关的知识,希望对你有一定的参考价值。
var SingletonInheritor = (function()
function Singleton()
Singleton.prototype =
constructor: Singleton,
instance: function()
var _instance = null;
var that = this;
return (that.constructor.prototype.instance = function()
if (_instance === null)
_instance = new that.constructor();
return _instance;
)();
return
declare: function(SubType)
SubType.prototype = new Singleton();
SubType.prototype.constructor = SubType;
)();
看上去是用闭包实现了一个单例模式构造类。
SingletonInheritor 是一个包含 declare 方法的对象,
这个对象的declare() 方法就可以用来将你的class构造成单例。
var singleton1 = SingletonInheritor.declare(ClassA); // ClassA变成单例Classvar obj1 = ClassA.instance(); // 获取单例对象
var obj2 = ClassA.instance(); // 获取到的对象与上面是同一个追问
看上去这样的声明是遵循了一定的语法,你能把语法格式写给我一下吗?关键代码加点注释
万分感谢!!呵呵
function Singleton()
Singleton.prototype =
constructor: Singleton,
instance: function()
var _instance = null; // 用闭包共享这个instance 实例给所有使用者
var that = this;
return (that.constructor.prototype.instance = function()
if (_instance === null) //关键是这个地方,如果对象存在,就不再new一个新的
_instance = new that.constructor(); // 不存在才创建
return _instance;
)();
return
declare: function(SubType)
SubType.prototype = new Singleton(); // 继承单例,使你自己的类具有单例特性
SubType.prototype.constructor = SubType;
)();追问
我再问几个具体的:
SubType.prototype 是什么意思?
Singleton.prototype = .....是什么意思?
declare: 是什么意思?
谢谢了
SubType.prototype = Parent; // prototype是js的关键字,可以实现原型链继承,就是SubType可以继承自Parent
Singleton.prototype = .....;// 同上,Singleton继承自一个Object “....”
declare: 是什么意思? // 是自定义的方法,比如 objectOne.declare=function() 给objectOne对象加上declare方法
能在详细一点吗?谢谢了,我有点看不明白
追答你对java了解吗 就是实例化一个对象的时候首先检查该类有没有被实例化过 如果被实例化过的直接返回已经实例化过的对象,比如使用方法getInstance() ,如果没有被实例化过那就new一个新对象返回
追问java的单例模式我大致了解,上面的代码直到第一个return结束,我能大致明白什么意思,第二个return不太明白是怎么用的。
除了大致明白,我希望可以了解的更准确一点,每一段代码分别代表什么含义(关键的部分。)
简单点将最后return就是附加一个方法给这个类 这就是脚本语言的好处可以动态添加属性与方法
什么是ODS?还有什么是事实表和维度表啊?希望高手指教~
最近在实习,经常听老员工在说什么ODS,还有事实表和维度表,希望哪个高手可以给我解释下?
ODS全称为Operational Data Store,即操作型数据存储,是“面向主题的、集成的、可变的、反映当前数据值的和详细的数据的集合,用来满足企业综合的、集成的以及操作型的处理需求”(Bill.Inmon)。ODS是数据仓库体系结构中的一个可选部分,ODS具备数据仓库的部分特征和OLTP系统的部分特征。事实表就是按某个分析领域组合的数据表
纬度表则是这个领域上的分析指标的组合表
解释2:
简单点说;
事实表就是交易表。
维度表就是基础表。
用来解释事实表中关键字纬度的具体内容。
解释3:
事实数据表
数据仓库架构中的中央表,它包含联系事实与维度表的数字度量值和键。事实数据表包含描述业务(如银行事务或产品销售)内特定事件的数据。
维度表
数据仓库中的表,其条目描述事实数据表中的数据。维度表包含创建维度所基于的数据。
再举个实际的例子。银行对存款记账,A表中存放实际数据,包括账号、所属机构号、存款金额等,B表存放机构号和机构名称的对应关系。则A是事实表,B是维表。
事实表
每个数据仓库都包含一个或者多个事实数据表。事实数据表可能包含业务销售数据,如现金登记事务
所产生的数据,事实数据表通常包含大量的行。事实数据表的主要特点是包含数字数据(事实),并且这些数字信息可以汇总,以提供有关单位作为历史的数据,每个事实数据表包含一个由多个部分组成的索引,该索引包含作为外键的相关性纬度表的主键,而维度表包含事实记录的特性。事实数据表不应该包含描述性的信息,也不应该包含除数字度量字段及使事实与纬度表中对应项的相关索引字段之外的任何数据。
包含在事实数据表中的“度量值”有两中:一种是可以累计的度量值,另一种是非累计的度量值。最有用的度量值是可累计的度量值,其累计起来的数字是非常有意义的。用户可以通过累计度量值获得汇总信息,例如。可以汇总具体时间段内一组商店的特定商品的销售情况。非累计的度量值也可以用于事实数据表,单汇总结果一般是没有意义的,例如,在一座大厦的不同位置测量温度时,如果将大厦中所有不同位置的温度累加是没有意义的,但是求平均值是有意义的。
一般来说,一个事实数据表都要和一个或多个纬度表相关联,用户在利用事实数据表创建多维数据集时,可以使用一个或多个维度表。
维度表
维度表可以看作是用户来分析数据的窗口,纬度表中包含事实数据表中事实记录的特性,有些特性提供描述性信息,有些特性指定如何汇总事实数据表数据,以便为分析者提供有用的信息,维度表包含帮助汇总数据的特性的层次结构。例如,包含产品信息的维度表通常包含将产品分为食品、饮料、非消费品等若干类的层次结构,这些产品中的每一类进一步多次细分,直到各产品达到最低级别。
在维度表中,每个表都包含独立于其他维度表的事实特性,例如,客户维度表包含有关客户的数据。维度表中的列字段可以将信息分为不同层次的结构级。 参考技术A ODS全称为Operational Data Store,即操作型数据存储,是“面向主题的、集成的、可变的、反映当前数据值的和详细的数据的集合,用来满足企业综合的、集成的以及操作型的处理需求”(Bill.Inmon)。ODS是数据仓库体系结构中的一个可选部分,ODS具备数据仓库的部分特征和OLTP系统的部分特征。
事实数据表
数据仓库架构中的中央表,它包含联系事实与维度表的数字度量值和键。事实数据表包含描述业务(如银行事务或产品销售)内特定事件的数据。
维度表
数据仓库中的表,其条目描述事实数据表中的数据。维度表包含创建维度所基于的数据。
举个实际的例子:银行对存款记账,A表中存放实际数据,包括账号、所属机构号、存款金额等,B表存放机构号和机构名称的对应关系。则A是事实表,B是维表。 参考技术B CFCs,化学名称氯氟烃,商业名称氟利昂,以前大量用于冰箱空调制冷剂、有机溶剂、气雾剂等。化学性质很稳定,进入空气后会累积,消耗大气层中的臭氧,形成臭氧层空洞,加速温室效应。进入21世纪,全球的冰箱空调生产商禁用氟利昂。
ODS是消耗臭氧层物质。《关于消耗臭氧层物质的蒙特利尔议定书》规定要淘汰的ODS物质中,在我国生产和消费的ODS包括六类94种,这六类物质是:CFCs、哈龙、四氯化碳、1,1,1-三氯乙烷、HCFC和甲基溴。 在94种ODS中,我国目前主要生产和使用的有10种,它们是:CFC-11、CFC-12、CFC-113、哈龙-1211、哈龙-1301、四氯化碳、1,1,1-三氯乙烷、HCFC-22、HCFC-141b和甲基溴。其余的ODS在我国的生产量和消费量很小。
这里有详细的解答
以上是关于javascript代码,希望高手分析解释一下下面这段函数是啥意思?谢谢了!的主要内容,如果未能解决你的问题,请参考以下文章