JavaScript再構築(四):JavaScript符号化規則
3180 ワード
ルールがなく、四角形ではなく、JavaScriptは柔軟性をもたらし、制御されていない変数やアクセスももたらすので、ルールで制限します.成熟したチームなのか、新鮮なチームなのか、ルールは異なるはずです.私はよくある方法や有効な方法をリストして、ジャンプの開発者を制約しています.思考は任意に飛躍することができますが、コードはコントロールされ続けなければなりません.もちろん、どのルールも一定の認知基盤の上に構築されており、オブジェクト向けJavaScriptの基盤は必須であり、そうでなければ何も言えない.
変数とメソッドの制御:
モジュール開発では、独立したグローバル変数、グローバルメソッドの格納は許可されず、対応するモジュールの「ネーミングスペース」に変数とメソッドを配置することのみが許可されます.この説明については、この文書を参照してください.本当にかゆいですが、匿名関数はいかがですか?
モジュール化にはコードの地域性を厳格に制御する必要があり、これはコードのメンテナンス性、カスタマイズ性の一方ではなく、JavaScriptエンジンに属性と方法の使用が完了した後にタイムリーに回収させる.
モジュールコードでオリジナルオブジェクトを汚染することは許されません.例えば、
このようなコードは、commonに統一的に配置するなど、集中的に制御しなければならない.jsでは、厳格に保護されています.
データ保管制約:
一般変数、prototype変数とfunction変数を分けて、方法名はすべて大文字で始まり、変数名はラクダの命名法に従うかどうか.
ここで意図的にやったことは、T内部の属性やプライベートメソッドが下線の先頭を使うことでうまくカプセル化(上記コードでt.instancenumを使うと、この値にアクセスできない)、このコードが読めない場合は、JavaScriptのオブジェクト向けを急いで復習しましょう:).JavaScriptでは,継承と多態化を実現するための閉パッケージとプロトタイプの2つの方法が提供されているが,再構築に応用することについては,後続の章でもっとくどいだろう.
また、JavaScriptのオリジナルオブジェクトやコンテナを優先的に使用します.例えば、Array、Ajaxのデータ型はJSONに統一的にカットされ、できるだけ隠しドメインを使用しないでください.また、通常はDOMオブジェクトを勝手に拡張することは許されない.
閉包特性を利用して、この点をより優雅にすることができます.
アクセス時には、次のようなパッケージング効果があります.
モジュール間の通信については、モジュール間の通信はモジュール間の結合性を意味し、厳格に避ける必要がある.通信の経路は、通常、メソッドレベルのプロパティまたはモジュールレベルのprototype変数を使用します.
DOM操作規則:
モジュールコードでは、通常、DOMに対する操作をモジュールjsに独立させることが要求され、例えば、DOMモデルに表示される書き込み時間トリガ関数は回避されるべきである.
JQueryはbindに基づく一連の方法で,行動論理を独立させた後,さわやかなHTMLタグを完全に見ることができる.
DOMオブジェクトへのアクセスは通常idを用いて検索され,たまにnameに基づいて検索されるが,DOMツリーを複数回,不合理に遍歴することはフロントエンド性能保持のタブーである.
CSSのスタイルコントロール:
(1)style=「xxx」の書き方をできるだけ拒否し、主な目的はスタイルをテーマスタイルフォームに統一することであり、もちろんテーマスタイルフォームもモジュールごとに保存されており、異なる言語のカスタマイズと異なるスタイルの切り替えに便利である.
(2)JavaScriptによるスタイルの操作を規約し,理想的にはパッケージ性の良いUIがそのスタイルセットを自由に置き換えることができる.
以上は氷山の一角としか言えず、レンガを投げて玉を引くことができ、実際のプロジェクトでは開発過程で徐々に細分化し、完備する必要がある.
文章は本人のオリジナルで、転載は作者と出典を明記してください
変数とメソッドの制御:
モジュール開発では、独立したグローバル変数、グローバルメソッドの格納は許可されず、対応するモジュールの「ネーミングスペース」に変数とメソッドを配置することのみが許可されます.この説明については、この文書を参照してください.本当にかゆいですが、匿名関数はいかがですか?
(function() {
var value = 'xxx';
var func = function() {...};
})();
モジュール化にはコードの地域性を厳格に制御する必要があり、これはコードのメンテナンス性、カスタマイズ性の一方ではなく、JavaScriptエンジンに属性と方法の使用が完了した後にタイムリーに回収させる.
モジュールコードでオリジナルオブジェクトを汚染することは許されません.例えば、
String.prototype.func = new function(){...};
このようなコードは、commonに統一的に配置するなど、集中的に制御しなければならない.jsでは、厳格に保護されています.
データ保管制約:
一般変数、prototype変数とfunction変数を分けて、方法名はすべて大文字で始まり、変数名はラクダの命名法に従うかどうか.
function T(name){
T.prototype._instance_number++;
this.name = name;
this.showName=function(){
alert(this.name);
}
};
T.prototype = {
_instance_number:0,
getInstanceNum: function(){
return T.prototype._instance_number;
}
};
var t = new T("PortalONE");
t.showName();
new T("Again");
alert(t.getInstanceNum()); // :2
ここで意図的にやったことは、T内部の属性やプライベートメソッドが下線の先頭を使うことでうまくカプセル化(上記コードでt.instancenumを使うと、この値にアクセスできない)、このコードが読めない場合は、JavaScriptのオブジェクト向けを急いで復習しましょう:).JavaScriptでは,継承と多態化を実現するための閉パッケージとプロトタイプの2つの方法が提供されているが,再構築に応用することについては,後続の章でもっとくどいだろう.
また、JavaScriptのオリジナルオブジェクトやコンテナを優先的に使用します.例えば、Array、Ajaxのデータ型はJSONに統一的にカットされ、できるだけ隠しドメインを使用しないでください.また、通常はDOMオブジェクトを勝手に拡張することは許されない.
閉包特性を利用して、この点をより優雅にすることができます.
var User = function(){
var name;
this.setName = function(newName){
name = newName;
};
this.getName = function(){
return name;
};
};
アクセス時には、次のようなパッケージング効果があります.
var user = new User();
user.setName("abc");
alert(user.getName()); //abc
alert(user.name); //undefined
モジュール間の通信については、モジュール間の通信はモジュール間の結合性を意味し、厳格に避ける必要がある.通信の経路は、通常、メソッドレベルのプロパティまたはモジュールレベルのprototype変数を使用します.
DOM操作規則:
モジュールコードでは、通常、DOMに対する操作をモジュールjsに独立させることが要求され、例えば、DOMモデルに表示される書き込み時間トリガ関数は回避されるべきである.
JQueryはbindに基づく一連の方法で,行動論理を独立させた後,さわやかなHTMLタグを完全に見ることができる.
DOMオブジェクトへのアクセスは通常idを用いて検索され,たまにnameに基づいて検索されるが,DOMツリーを複数回,不合理に遍歴することはフロントエンド性能保持のタブーである.
CSSのスタイルコントロール:
(1)style=「xxx」の書き方をできるだけ拒否し、主な目的はスタイルをテーマスタイルフォームに統一することであり、もちろんテーマスタイルフォームもモジュールごとに保存されており、異なる言語のカスタマイズと異なるスタイルの切り替えに便利である.
(2)JavaScriptによるスタイルの操作を規約し,理想的にはパッケージ性の良いUIがそのスタイルセットを自由に置き換えることができる.
以上は氷山の一角としか言えず、レンガを投げて玉を引くことができ、実際のプロジェクトでは開発過程で徐々に細分化し、完備する必要がある.
文章は本人のオリジナルで、転載は作者と出典を明記してください