人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

js プラグインを読んでいると次のような一文が出てきました。
A: function () {
this.config.logger && this.config.logger("hoge: destroy");
...
}

この論理演算子を使った部分の意味が全く分からないのですが、分かる方いらっしゃいましたらご教示下さい!

●質問者: 匿名質問者
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● 匿名回答1号
ベストアンサー

「A && B」はAまたはBのどちらかがfalseだともう一方がどうであれfalseになる。
つまりAを評価してfalseになった場合、Bを評価せずともfalseであることが確定する。
そのため、言語仕様としてAがfalseならBを評価しないという言語も多い。
そしてそういう仕様であれば「もしAがtrueならBを実行する」というif文として使える。
これを短絡評価というらしい。
http://ja.wikipedia.org/wiki/%E7%9F%AD%E7%B5%A1%E8%A9%95%E4%BE%A1

質問の場合に当てはめると、"this.config.logger"がfalseならそれ以降の、関数呼び出しを行わない。
下記にあるが、falseとなるのは「null、0、空文字列("")、あるいは、undefined」で、関数オブジェクトならtrueになる。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Logical_Operators

つまり、this.config.loggerが定義されていれば呼び出しをする。定義されてなければ呼び出さない。
たぶん、オプションでログのオン・オフがあって、オンなら関数代入、オフなら未設定(nullかundefined)にしてるのでは(関数の有り無しがログのオン・オフフラグを兼ねている)。


匿名質問者さんのコメント
なるほど〜!!! ご説明丁寧で非常にわかりやすかったです。 &&がこんな使い方できたとは...
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ