外側から順を追って考えていきましょう。
JavaScript
1(function(_this) {
2 })(this)
これは「即時関数」といいます。もっと分解しましょう。やっていることはこれと同じです。これならわかりますか?
JavaScript
1var f = function(_this) { // 無名関数をfに代入
2 console.log(_this);
3};
4f(this); // 無名関数fの引数にthisを渡す
ではこの一番外側の即時関数をAとしましょう。次にこのAが何を返すかを見てみましょう。
JavaScript
1return function() {
2};
またしても無名関数を返します。これをBとしましょう。外側の即時関数は戻り値として無名関数を返すようです。では更に内側を見て見ましょう。
JavaScript
1return $.blockUI({
2 message: '',
3 overlayCSS: {
4 textAlign: 'center',
5 backgroundColor: '#fff',
6 opacity: 0.0,
7 cursor: 'wait',
8 zIndex: 2000
9 },
10 verticalAlign: 'top'
11});
私はAngularJSに詳しくないのですが、blockUIというプラグインのインスタンスを返しているようですね。これをCとしましょう。
つまりこの処理が何をしているかをまとめると…
- $scope.showLoadingInvisibleが欲しいのは引数無しの無名関数Bで、その無名関数を実行するとCのようなプラグインのインスタンスが返ってくることを望んでいる
- Aでthisを_thisという一時変数として受け取っておくことで、BやCで_thisを使って外側のthisインスタンスにアクセスが可能…だがこのコードでは_thisを使っていないのでAで囲む意味はない
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/01 03:44