跪求代码解释,被司徒正美雷倒了

meible2007 meible2007 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
司徒正美今天的新文章一出来,第一句话我就看不懂,先出来三个分号,啥意思啊?谁帮忙解释下,

如果能全部解释下那就最好了,

发现差距越来越大,他的文章我怎么都看不懂的。。。



/*dom Framework version 1.0
Copyright 2010
Dual licensed under the MIT or GPL Version 2 licenses.
author: <ruby> <rb>司徒正美<rp>(zhongqincheng)</rp></rb><rt>しとぅなさみ</rt></ruby>
http://www.cnblogs.com/rubylouvre/
*/
//=========================================
// OOP模块 提供强大的面向对象编程, ruby风格的继承机制
//==========================================
;;;(function(dom,window,undefined){
dom.provide("oop");

var classMethods = (function() {
var include = ["constructor"],
extend = 'prototype $supers $super extend include'.toArray();
function cleanModule(module, array) {
array = array == 'extend' ? extend : include
for(var key in module){
if(module.hasOwnProperty(key) && array.contains(key)){
delete module[key]
}
}
return module;
}
return {
//桥梁模式,将实现化与抽象化脱耦,便得两者可以独立地变化
//http://javascript.crockford.com/prototypal.html
inherit: function(parent) {
if (parent && parent.prototype) {
var bridge = function() {};
bridge.prototype = parent.prototype;
this.prototype = new bridge;
this.$super = parent;
}
this.$supers = [];//这里的this为类
while (parent) {
if(!dom.isPureObject(parent)){//父类不能为默认添加的Object
this.$supers.push(parent);
parent = parent.$super;
}
}
return this.prototype.constructor = this;
},
alias : function(oldName, newName){
var proto = this.prototype;
if (dom.isString(oldName)){
var method = proto[oldName]
method && (proto[newName] = method);
}else if(is(oldName,"Object")){
dom.each(oldName,function(neo,old){
this.alias(old,neo)
},this)
}
return this;
},
//为新类添加一些类成员
extend: function() {
dom.toArray(arguments).each(function(module){
dom.mixin(this, cleanModule(module, 'extend'));
},this);
return this;
},
//为新类添加原型成员,如果它们是函数,则判断其与父类有没有同名方法,
//有则改写当前类的成员,在它上面添加一个$super属性
include: function() {
var $supers = this.$supers.pluck('prototype');
dom.slice(arguments).each(function(module){
cleanModule(module, 'include');//去除模块包中那些危险属性
dom.keys(module).each(function(key){
var value = module[key],isFn = dom.is(value,"Function");
if(key.startsWith("protected ")){
key = key.toArray()[1];
if(isFn){
value._protected = true;
}
}
var parent = $supers.first(function(proto) {
return dom.is(proto[key],"Function");
});
this.prototype[key] = isFn ?
(function( method, key, parent) {
return function() {
parent && (this.$super = parent[key]);
if (method._protected && this._method == null){
throw new Error('The method "' + key + '" is protected!');
}
this._method = arguments.callee;
var result = method.apply(this, arguments);
delete this._method;
return result;
};
})(value, key, parent) :value;
if(isFn){
this.prototype[key].toString = function(){
return String(value);
}
}
},this);
},this);
return this;
}
}
})();
//第一类工厂
//{inherit :superclass,include:instance_member,extend:class_member,singleton:boolean}
dom.oop = function(obj){
obj = obj || {};
//新类的原始构造器
var init = init || obj.init || dom.noop;
delete obj.init;
//父类
var superclass = obj.inherit || Object;
//判定是否需要实现单例
var singleton = !!obj.singleton ;
delete obj.singleton;
//------------------创建新类--------------------------------------------
var klass = function() {
if(singleton && klass.instance){//实现单例模式
return klass.instance
}
superclass.apply(this, arguments);
init.apply(this, arguments);
if(singleton)
klass.instance = this;
return this;
};
//添加泛化成员与原型成员
dom.mixin(klass, classMethods).inherit(superclass);
["extend", "include"].each(function(name) {
if (obj[name]) {
var modules = dom.toArray(obj[name]);
klass[name].apply(klass, modules);
delete obj[name];
}
});
var proto = klass.prototype;
klass.include(obj);
if(!proto.__proto__){//修复IE与Opera中的第二条原型链
proto.__proto__ = proto
}
proto.$super = superclass;
klass.toString = function(){//重写构造子的toString
return init.toString();
}
return klass
}
})(window[escape(document.URL.split("#")[0])],this);


...全文

相关推荐

江苏省泰州市泰兴市实验中学2015_2016学年八年级物理上学期期中试题含解析苏科版

江苏省泰州市泰兴市实验中学2015_2016学年八年级物理上学期期中试题含解析苏科版

超级源码阿

镇江市八年级物理第一学期期末试卷及答案.doc

镇江市八年级物理第一学期期末试卷及答案.doc

艳艳点点

高三英语复习提升词汇量的利器高中英语构词法PPT学习教案.pptx

高三英语复习提升词汇量的利器高中英语构词法PPT学习教案.pptx

woshifafuge

【SCI论文复现】基于IEEE9节点低惯量电力系统混合拓扑的构网型变流器控制:下垂控制、虚拟同步机控制(VSM)、匹配控制与可调度虚拟振荡器控制(dVOC)电磁暂态(Simulink仿真实现)

内容概要:本文围绕低惯量电力系统中构网型变流器的多种先进控制策略开展研究,重点实现了下垂控制、虚拟同步机控制(VSM)、匹配控制以及可调度虚拟振荡器控制(dVOC)在三相四桥臂逆变器中的电磁暂态建模与仿真,并基于IEEE9节点系统进行验证。通过Simulink平台构建混合拓扑结构,系统对比分析了各类控制方法在频率支撑、电压调节、动态响应及系统稳定性等方面的性能差异,旨在提升高比例新能源接入背景下电力系统的主动支撑能力与运行韧性。; 适合人群:电力电子、电力系统自动化及相关专业的研究生、科研人员及从事新能源并网技术研发的工程技术人员。; 使用场景及目标:①掌握构网型变流器在现代电力系统中的建模与控制方法;②深入理解VSM、dVOC等前沿控制技术的工作原理及其对系统稳定性的贡献;③为低惯量电网的仿真分析与控制策略优化提供技术参考与实现范例。; 阅读建议:建议结合文中提供的Simulink仿真模型与关键技术细节,动手复现各项控制策略,并通过设置不同扰动工况进行对比测试,以深化对控制机理的理解和工程应用能力的培养。

三伯

微电子与集成电路设计导论(第2版)配套课件+习题

微电子与集成电路设计导论(第2版)配套课件+习题

qq_38220914
评论 6
收藏 已收藏
分享
返回顶部
meible2007
JavaScript 87,983 成员 224,681 内容