ExtJS4.2 php版を学ぶ(四)
alternateClassName
このキーワードとaliasの違いは何ですか?
statics
staticsが提供する静的属性サブクラス継承不可継承inheritableStaticsを使用する
mixinsマルチ継承
requires uses
usesプロパティの場合、参照クラスを後ろに置くことはできますが、エラーは報告されません.
requiresプロパティの場合、参照クラスはクラスを使用する前にロードする必要があります.そうしないと、エラーが発生します.
singleton単例化
Ext.define('Developer', {
alternateClassName: ['Coder', 'Hacker'],
code: function(msg) {
alert('Typing... ' + msg);
}});
var joe = Ext.create('Developer');
joe.code('stackoverflow');
var rms = Ext.create('Hacker');
rms.code('hack hack');
このキーワードとaliasの違いは何ですか?
statics
Ext.define("My.Teacher",{
config: {
name : ""
},
statics : {
say : function() {
alert("static");
}
},
constructor: function(cfg) {
this.initConfig(cfg);
},
say : function() {
var me = this;
alert("My type is "+me.name);
return this;
}
});
My.Teacher.say();
staticsが提供する静的属性サブクラス継承不可継承inheritableStaticsを使用する
Ext.define("My.Teacher",{
config: {
name : ""
},
statics : {
say : function() {
alert("static");
}
},
constructor: function(cfg) {
this.initConfig(cfg);
},
say : function() {
var me = this;
alert("My type is "+me.name);
return this;
}
});
Ext.define('My.MathTeacher', {
extend : "My.Teacher",
alias : ["MyTeacher","MathTeacher"],
config: {
type : "Math"
},
constructor: function(cfg) {
this.initConfig(cfg);
}
});
My.MathTeacher.say();
mixinsマルチ継承
Ext.define("My.Teacher",{
config: {
name : ""
},
statics : {
say : function() {
alert("static");
}
},
constructor: function(cfg) {
this.initConfig(cfg);
},
say : function() {
var me = this;
alert("My type is "+me.name);
return this;
}
});
Ext.define("canTeachMath",{
teachMath : function() {
alert("I can tech Math");
}
})
Ext.define("My.MathTeacher", {
mixins : ["My.Teacher","canTeachMath"],
alias : ["MyTeacher","MathTeacher"],
config: {
type : "Math"
},
constructor: function(cfg) {
this.initConfig(cfg);
}
});
var adn = Ext.create("My.MathTeacher",{
name : "asds",
type : "sads"
});
adn.teachMath();
requires uses
usesプロパティの場合、参照クラスを後ろに置くことはできますが、エラーは報告されません.
requiresプロパティの場合、参照クラスはクラスを使用する前にロードする必要があります.そうしないと、エラーが発生します.
Ext.define("Gird",{
uses : ["boy"],
config: {
name : ""
},
constructor: function(cfg) {
this.initConfig(cfg);
},
say : function() {
var me = this;
alert("My type is "+me.name);
return this;
}
});
Ext.define("Boy",{
config: {
},
constructor: function(cfg) {
this.initConfig(cfg);
},
play : function() {
alert("I can play");
return this;
}
});
singleton単例化
Ext.define('Logger', {
singleton: true,
log: function(msg) {
console.log(msg);
}});
Logger.log('Hello');