Help us understand the problem. What is going on with this article?

【phina.js】phina.js namespace(phina.jsの名前空間)について

More than 1 year has passed since last update.

この記事はphina.js v0.2.2について書いています。
こちらからphina.namespaceの変数、関数の一覧を見られます。

phina.js namespace

phina.jsのネームスペースです。phina.js の全ての機能はこのオブジェクトの中に入っています。
phina.jsのネームスペースはphinaオブジェクトになります。

変数

phina.VERSION

phina.jsのバージョン

phina.global

Node.jsならglobal、ブラウザならwindowを返します。ゲッターのみ

関数

phina.isNode()

Node.jsのmoduleかどうかをチェックします。

  • Param: なし
  • Return: Boolean (Node.jsのmoduleかどうか)
  • static

phina.namespace(fn)

引数は関数で、その関数内でのthisphinaになります。

  • Param:
    • fn: Function
  • Return: なし
  • static

phina.testUA(regExp)

引数とユーザーエージェントを比較して返します。
引数は正規表現リテラルです。

  • Param:
    • regExp: Object (RegExpオブジェクト)
  • Return: Boolean
  • static

phina.isAndroid()

Android かどうかを返します。

  • Param: なし
  • Return: Boolean
  • static

phina.isIPhone()

iPhone かどうかを返します。

  • Param: なし
  • Return: Boolean
  • static

phina.isIPad()

iPad かどうかを返します。

  • Param: なし
  • Return: Boolean
  • static

phina.isIOS()

iOS かどうかを返します。

  • Param: なし
  • Return: Boolean
  • static

phina.isMobile()

モバイルかどうかを返します。具体的にはAndroid、iPhone、iPadのいずれかだとtrueになります。WindowsPhoneェ・・・

  • Param: なし
  • Return: Boolean
  • static

phina.createClass(params)

クラスを作成する関数です。
親クラスの指定は文字列でも可能で、文字列のメリットはクラス作成時に親クラスが定義されていなくても、実行時に定義されていればいいところです。
何も継承しない場合、superClassの指定は不要です。また、親クラスを継承している場合、コンストラクタ内でthis.superInit()を実行して親クラスを初期化することが必須です

  • Param:
    • params: Object
  • Return: Function (クラス)
  • static

Example

var Clas = phina.createClass({
  superClass: 'namespace.Super',//親クラス継承

  //メンバ変数
  member1: 100,
  member2: 'test',
  member3: null,  


  //コンストラクタ
  //Clas()を呼び出したとき実行される
  init: function(a, b){
    //スーパークラス(継承したクラス)のinit
    this.superInit(a, b);
    this.a = a;
    this.b = b;
  },

  //メソッド
  method1: function(){},
  method2: function(){},

});

phina.using(path)

文字列で定義したパスを使ってオブジェクトを取り出します。パスは, . / \ :: で区切ることができます。
phina.register()で登録したオブジェクトを取り出すときなどに使うと便利な関数です。

  • Param:
    • path: String (パス)
  • Return: Object
  • static

Example

phina.main(function() {
  hoge = {
    foo: {
      bar: {
        num: 100
      }
    }
  };
  var bar = phina.using('hoge.foo.bar');
  console.log(bar.num); // => 100
});

phina.register(path, _class)

パス指定でオブジェクトを登録する関数です。パスは, . / \ :: で区切ることができます。

  • Param:
    • path: String (パス)
    • _class: Object (登録するオブジェクト)
  • Return: Object (登録したオブジェクト)
  • static

Example

phina.main(function() {
  phina.register('hoge.foo.bar', {
    num: 100,
  });
  console.log(hoge.foo.bar.num); // => 100
});

phina.define(path, params)

クラスを定義する関数です。使い方はcreateClass()と大体同じです。
ただし、引数は2つあり、第一引数は定義するクラスのパスを文字列で渡します。第二引数のオブジェクトはphina.createClassの引数と同じようにします。
phina.createClassと違い、変数に代入する必用がなく、パス指定でクラスを定義できます。

内部的にはphina.createClassを使用しているので、phina.createClassと同じく、何も継承しない場合、superClassの指定は不要です。また、親クラスを継承している場合、コンストラクタ内でthis.superInit()を実行して親クラスを初期化することが必須です。

  • Param:
    • path: String (パス)
    • params: Object
  • Return: なし
  • static

Example

phina.define('namespace.Clas', {
  superClass: 'namespace.Super',//親クラス継承

  //メンバ変数
  member1: 100,
  member2: 'test',
  member3: null,  


  //コンストラクタ
  //Clas()を呼び出したとき実行される
  init: function(a, b){
    //スーパークラス(継承したクラス)のinit
    this.superInit(a, b);
    this.a = a;
    this.b = b;
  },

  //メソッド
  method1: function(){},
  method2: function(){},

});

phina.globalize()

phina.jsが用意している全てのクラスをグローバルに展開します。(具体的には、phinaが持つオブジェクトが一通りグローバルに展開されます。)
この関数を実行することで、いちいちglobalからたどっていかなくても、phina.jsの用意しているクラスをクラス名だけで呼び出すことができます。
コードの最初に書くことが多いですが、グローバル空間の汚染を防ぐという意味で使わないという選択肢もあります。

  • Param: なし
  • Return: なし
  • static

Example

phina.globalize();

phina.main(func)

phina.js でプログラミングする際、メインの処理を記述するための関数です。基本的にphina.jsでのプログラミングではこの中にプログラムを書いていくことになります。

  • Param:
    • func: Function
  • Return: なし
  • static

Example

phina.main(function() {
  //ここにメインの処理を書く
});

変数、関数一覧

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away