这是我的分类格式的 3 层示例
function __(_){return _.constructor}
//class
var _ = ( CLASS = function(){
this.variable = 0;
this.sub = new CLASS.SUBCLASS();
}).prototype;
_.func = function(){
alert('lvl'+this.variable);
this.sub.func();
}
_.divePeak = function(){
alert('lvl'+this.variable);
this.sub.variable += 5;
}
//sub class
_ = ( __(_).SUBCLASS = function(){
this.variable = 1;
this.sub = new CLASS.SUBCLASS.DEEPCLASS();
}).prototype;
_.func = function(){
alert('lvl'+this.variable);
this.sub.func();
}
//deep class
_ = ( __(_).DEEPCLASS = function(){
this.variable = 2;
}).prototype;
_.func = function(){
alert('lvl'+this.variable);
}
在你吹垫圈之前,让我解释一下。下划线背后的目的是加快为类指定函数以及指定类的子类所需的时间。对我来说,它更容易阅读。我知道,如果您打算在您的课程中使用 underscore.js,这确实会干扰它。我敢肯定 _.js 可以很容易地切换到另一个 $ymbol 虽然......哦等等,但我离题了。
为什么在一个类中有类?因为 solar.system() 和 social.system() 意味着两个完全不同的东西,但使用相同的名称很方便。为什么用户下划线来管理类的定义?因为“Solar.System.prototype”花了我大约 2 秒的时间来输入和 2 个拼写错误来纠正。它还将所有类的所有函数名称保留在同一列文本中,这有助于易读性。
我所做的只是展示我对这种方法的推理以及我提出这种方法的原因。我学习 OO JS 已经 3 天了,我非常愿意接受我可能搞砸了。