Code crystal

ぼちぼち技術開発 主にjs,java等


phina.jsのオブジェクトについて

phina.jsのオブジェクトは、new構文を使わずに生成することができます。 new Hoge(); などといったコードを書かずとも、単に Hoge(); とするだけでオブジェクトを作ることが出来るのです。これは、関数Hogeが内部で new Hoge(); のようなものを呼び出しているからに他なりません。phina.jsのソースコードを見ると、以下のような場所があります。
var _class = function() { var instance = new _class.prototype._creator(); _class.prototype.init.apply(instance, arguments); return instance; };
2行目が肝です。変数instanceに new _class.prototype._creator() を代入しています。これが全てのphina.jsのオブジェクトの元です。ただ、この特性上、Chromeのデバッガなどではphina.jsのオブジェクトの型は全て "_class._creator" と表示されてしまいます。その代わりに、phina.jsのオブジェクトは皆classNameプロパティーを持っています。このプロパティーの値を見ることで、そのオブジェクトの型が分かります。

phina.jsのObject.prototype拡張

phina.jsを導入すると、その環境の全てのオブジェクトにいくつかのメソッドが追加されます。また、NumberクラスやStringクラスなどにも多数追加されますが、ここでは省略します。ここでは、その中から特に有用なものを取り上げて説明します。

last modified: 2016/8/24

phina.jsホームへ