III. Hands-on
var MyWindow = Ext.extend(Object, { ... });
↑はネームスペースを汚すので良くない。
My.cool.Window = Ext.extend(Ext.Window, { ... });
↑ならOK。でもMy.coolにオブジェクトを代入しておかないといけない。
Ext.ns('My.cool');
My.cool.Window = Ext.extend(Ext.Window, { ... });
↑Ext.nsを使うと空のオブジェクトを入れといてくれる。
でもまだExt.Windowをロードしておかないといけないという問題がある。
今までは依存関係を解決できなかったのでext-all.jsを使っていた。
Ext.define(className, members, onClassCreated);
↑を使えば依存関係を自動的に解決してくれるよ!
依存しているファイルをすべて自動的にロードしてくれる。
さらにExt.nsを使わなくてもOK.
コード例は↓
Ext.define('My.sample.Person', { name: 'Unknown', constructor: function(name) { if (name) { this.name = name; } return this; }, eat: function(foodType) { alert(this.name + " is eating: " + foodType); return this; } }); var aaron = Ext.create('My.sample.Person', 'Aaron'); aaron.eat("Salad"); // alert("Aaron is eating: Salad");