CoffeeScriptとかJavascriptとかで、省力化とかに使えるメソッドのエイリアスを作る
こーゆーの、すき
console.log を短く書くために(IE8+ 対応)という記事がQiitaにあって、大変面白かったので、下記みたいに一般化してみた。で、あー、こーゆーのすきー、って感じでゆるりと見ていた。まあ、たいていの場合bindで済むんだろうけど、Mathなんかも嘘メソッドの実装ありそうだしな。「?nternet ?xplorer 6」とかな。冤罪だったらごめん。でも、そーゆー可能性は少なくないので、リンク先で学んだ書き方は、大変安心感がある。あ、でも、ログ以外の時は、空の関数返しちゃいかん気もするな……。まあしかし、rootとかroot.methodとかが存在しないって、それは嘘過ぎるだろ。と無責任に締めていたのだが、ちょっと反省した。まあ、consoleじゃない時は、TypeError例外投げとこう。っとおもってちょっと書いたが、考えてみたら、rootが未定義だったらそれが何を意図して渡されたのか、分かんないや。丁寧にやりたい人は、rootも文字列で引き渡して、evalで評価して下さい。で、それならconsoleを意図していて未定義なら空の関数を返し、そうでないならTypeErrorで綺麗ですね。私はやらないです。ログに警告くらいです。
まあ、そういう危険なものだとしても、タイプ数減らすのには貢献するし、「alias」と名付けておくと可読性も上がるので、これで良いかな、と思う。
alias = ((root,method) ->
if not (root?[method]?)
console.warn 'alias is danger!'
return ->
if not (root[method].bind?)
return -> Function.prototype.apply.call(root[method], root, arguments)
root[method].bind(root)
)
log = alias(console,'log')
fl = alias(Math,'floor')
log fl 5.23
Author And Source
この問題について(CoffeeScriptとかJavascriptとかで、省力化とかに使えるメソッドのエイリアスを作る), 我々は、より多くの情報をここで見つけました https://qiita.com/mrpepper/items/7cf4a9aa9f671fc2ab82著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .