let の 使い方

巡回してて、おぉ と 思ったのでメモ

Jetpackのソースを眺めていて、おぉなるほど、と思った。

let SlideBar = let (T = {
// ...
hoge: function(){
T.abc();
},
abc: function(){
// ...
}
// ...
}) T;

長いオブジェクト名は省略してしまえ! ってか? - hogehoge @teramako


んと

スコープの規則

let を使って定義された変数のスコープは、let ブロック自身とその内部に含まれるすべてのブロックです。ただし...

let を使ったブロックスコープ

の ブロックが 左辺までを含むってことなのかな?

間違ってました。

* teramako 『>スコープの規則
ですが、この場合はMDCで言うところのlet文ではなくlet式にあたります。

let への 認識は怪しいですが、とりあえず長い名前のものに使うと短かく済ませそうです。
あと、ラップする機能のものを書くときも便利そうですね。
(やりすぎると混乱しそうですけど)

(function(){
  (plugins.test||(plugins.test={}))
    .TreeStyleTab = let(T=gBrowser.treeStyleTab,U={
      show:function(){
        T.showTabbar();
      }//以下略
    }) U;
})();

treestyletabのキー操作用スクリプトも上記風に書き直したらもう少し可読性上がりそうな気がしてきました…