不定期,想到就说,随意扯扯,貌似有1,2,3,4这样的系列估计会太监
看到有人针对ext4问了个问题,是关于 singleton的 ,ext的设计者估计是考虑到更面向对象的程序设计所以比较喜欢这样弄,导致的结果就是大;
ext4中 定义新的类的方式采用了define,代码如下:
Ext.define('A', {
singleton: true,
test: function() {
alert('hi A');
}
});
Ext.define('B', {
statics: {
test: function() {
alert('hi B');
}
}
});
A.test();
B.test();
singleton: true,
test: function() {
alert('hi A');
}
});
Ext.define('B', {
statics: {
test: function() {
alert('hi B');
}
}
});
A.test();
B.test();
很显然 这会弹2回alert,可是这2回有区别吗?
那这样加上如下代码试下:
console.log(typeof A);
console.log(typeof B);
发现区别了,一个是object 而另个是function
然后那个相片上看上去貌似中国人的开发者抛出这手:
var classOfA = Ext.getClass(A);
console.log(typeof classOfA);
对了 这东西是function了
那classOfA是啥咋回事?
其实是classOfA.prototype = A;
所以啊 classOfA.prototype.test();
这样才会alert。。。