これは私の分類形式の 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() は 2 つのまったく異なるものを意味しますが、同じ名前を使用すると便利です。クラスの定義を管理するためにユーザーが下線を引くのはなぜですか? 「Solar.System.prototype」を入力するのに約 2 秒かかり、2 つのタイプミスを修正するのにかかったからです。また、すべてのクラスのすべての関数名をテキストの同じ列に保持するため、読みやすくなっています。
私がしているのは、この方法の背後にある理由と、なぜそれを思いついたのかを提示することだけです. 私はオブジェクト指向 JS を学習して 3 日目ですが、失敗した可能性があることを喜んで受け入れます。