タグ

ブックマーク / unageanu.hatenablog.com (2)

  • moduleのメソッドをクラスメソッドとして追加したい - うなの日記

    moduleのメソッドを、クラスのクラスメソッドとして追加したい場合、Object#extendが利用できます。 extendは「引数で指定したモジュールのインスタンスメソッドを self の特異メソッドとして追加します」。 クラスのコンテキストで実行することで、クラスの特異メソッド(=クラスメソッド)として、モジュールのメソッドを追加できます。 もちろん、インスタンスをレシーバにして呼び出すことも可能です。その場合、インスタンスの特異メソッドとして追加されます。 includeの場合、クラスのインスタンスメソッドとして追加されます。 ちなみに、extend,includeともにモジュールの特異メソッドは追加対象になりません。 # モジュール module Foo def foo puts "foo" end def self.var puts "var" end end # Fooをex

    moduleのメソッドをクラスメソッドとして追加したい - うなの日記
    takaesu
    takaesu 2015/10/29
    取り込みたいモジュールにselfで始まるメソッド(特異メソッド)があっても、extend と include どちら取り込むことはできない。
  • オブジェクトがnullやundefindでないか評価する。 - うなの日記

    ifで評価すれば一発で判定できます。 if ( !target ) { ... } // 以下のようにはしなくてもいい。 // if ( target == null || target == undefined ) { ... } 値ごとのifでの評価結果は次の表の通り。空文字列や0はfalse扱いなので注意。 値 ifで評価した結果 Object true undefined false null false 0 false 1 true -1 true ""(空文字列) false "a" true 配列 true ハッシュ true 確認してみます。 var stdout = document.getElementById("stdout"); // オブジェクト / null, undefind は false stdout.innerHTML += "null is " + (

    オブジェクトがnullやundefindでないか評価する。 - うなの日記
    takaesu
    takaesu 2011/11/29
    JavaScriptのIF文でオブジェクトを評価するときの条件[javascript],[if],[null]
  • 1