<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 命名 通常, 使用 `functionNamesLikeThis`, `variableNamesLikeThis`, `ClassNamesLikeThis`, `EnumNamesLikeThis`, `methodNamesLikeThis`, 和 `SYMBOLIC_CONSTANTS_LIKE_THIS`. 展開見細節. ### 屬性和方法 * 文件或類中的 _私有_ 屬性, 變量和方法名應該以下劃線 “_” 開頭. * _保護_ 屬性, 變量和方法名不需要下劃線開頭, 和公共變量名一樣. 更多有關 _私有_ 和 _保護_的信息見, [visibility](#Visibility__private_and_protected_fields_). ### 方法和函數參數 可選參數以 `opt_` 開頭. 函數的參數個數不固定時, 應該添加最后一個參數 `var_args` 為參數的個數. 你也可以不設置 `var_args`而取代使用 `arguments`. 可選和可變參數應該在 `@param` 標記中說明清楚. 雖然這兩個規定對編譯器沒有任何影響, 但還是請盡量遵守 ### Getters 和 Setters Getters 和 setters 并不是必要的. 但只要使用它們了, 就請將 getters 命名成 `getFoo()` 形式, 將 setters 命名成 `setFoo(value)` 形式. (對于布爾類型的 getters, 使用 `isFoo()` 也可.) ### 命名空間 JavaScript 不支持包和命名空間. 不容易發現和調試全局命名的沖突, 多個系統集成時還可能因為命名沖突導致很嚴重的問題. 為了提高 JavaScript 代碼復用率, 我們遵循下面的約定以避免沖突. ### 為全局代碼使用命名空間 在全局作用域上, 使用一個唯一的, 與工程/庫相關的名字作為前綴標識. 比如, 你的工程是 “Project Sloth”, 那么命名空間前綴可取為 `sloth.*`. ``` var sloth = {}; sloth.sleep = function() { ... }; ``` 許多 JavaScript 庫, 包括[the Closure Library](http://code.google.com/closure/library/)and[Dojo toolkit](http://www.dojotoolkit.org/)為你提供了聲明你自己的命名空間的函數. 比如: ``` goog.provide('sloth'); sloth.sleep = function() { ... }; ``` ### 明確命名空間所有權 當選擇了一個子命名空間, 請確保父命名空間的負責人知道你在用哪個子命名空間, 比如說, 你為工程 ‘sloths’ 創建一個 ‘hats’ 子命名空間, 那確保 Sloth 團隊人員知道你在使用 `sloth.hats`. ### 外部代碼和內部代碼使用不同的命名空間 “外部代碼” 是指來自于你代碼體系的外部, 可以獨立編譯. 內外部命名應該嚴格保持獨立. 如果你使用了外部庫, 他的所有對象都在 `foo.hats.*` 下, 那么你自己的代碼不能在 `foo.hats.*`下命名, 因為很有可能其他團隊也在其中命名. ``` foo.require('foo.hats'); /** * WRONG -- Do NOT do this. * @constructor * @extend {foo.hats.RoundHat} */ foo.hats.BowlerHat = function() { }; ``` 如果你需要在外部命名空間中定義新的 API, 那么你應該直接導出一份外部庫, 然后在這份代碼中修改. 在你的內部代碼中, 應該通過他們的內部名字來調用內部 API , 這樣保持一致性可讓編譯器更好的優化你的代碼. ``` foo.provide('googleyhats.BowlerHat'); foo.require('foo.hats'); /** * @constructor * @extend {foo.hats.RoundHat} */ googleyhats.BowlerHat = function() { ... }; goog.exportSymbol('foo.hats.BowlerHat', googleyhats.BowlerHat); ``` 重命名那些名字很長的變量, 提高可讀性 主要是為了提高可讀性. 局部空間中的變量別名只需要取原名字的最后部分. ``` /** * @constructor */ some.long.namespace.MyClass = function() { }; /** * @param {some.long.namespace.MyClass} a */ some.long.namespace.MyClass.staticHelper = function(a) { ... }; myapp.main = function() { var MyClass = some.long.namespace.MyClass; var staticHelper = some.long.namespace.MyClass.staticHelper; staticHelper(new MyClass()); }; ``` 不要對命名空間創建別名. ``` myapp.main = function() { var namespace = some.long.namespace; namespace.MyClass.staticHelper(new namespace.MyClass()); }; ``` 除非是枚舉類型, 不然不要訪問別名變量的屬性. ``` /** @enum {string} */ some.long.namespace.Fruit = { APPLE: 'a', BANANA: 'b' }; myapp.main = function() { var Fruit = some.long.namespace.Fruit; switch (fruit) { case Fruit.APPLE: ... case Fruit.BANANA: ... } }; ``` ``` myapp.main = function() { var MyClass = some.long.namespace.MyClass; MyClass.staticHelper(null); }; ``` 不要在全局范圍內創建別名, 而僅在函數塊作用域中使用. ### 文件名 文件名應該使用小寫字符, 以避免在有些系統平臺上不識別大小寫的命名方式. 文件名以`.js`結尾, 不要包含除 `-` 和 `_` 外的標點符號(使用 `-` 優于 `_`).
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看