Ext 无法从基/抽象类中获取静态值
Ext unable to get a static value from a base/abstract class
我这里有两个类,形状和矩形 - 其中矩形继承自形状。
下面是父类:
Ext.define('Shape', {
id: 1,
name: 'ShapeX',
static: {
drawnShapes: ['Shape1', 'shape2'],
getDrawnShapesCount: function () {
console.log('the number of drawn shapes is :'
+ this.drawnShapes.length );
}
},
draw: function (newShape) {
debugger;
var newShape;
this.static.drawnShapes.push(newShape);
console.log( newShape
+ ' is drawn.... 'n the number of drawnShapes is '
+ this.static.drawnShapes.length
+ '" 'n Shape class defined!' );
}
});
这是我从父级继承的类:
Ext.define('Rectangle', {
extend: 'Shape',
draw: function (Arrlenght,base.newShape) {
var Arrlenght = inheritableStatics.drawnShapes.length;
alert(Arrlenght); // I need this array value?
if (Arrlenght <= 10) {
this.callParent();
} else {
console.log('Too many shapes drawn!');
}
console.log('Drawing a Rectangle...');
}
});
我的问题是在 draw
方法内的 Rectangle 类中 - 我想从父类中获取drawShapes
数组的长度 - 然后如果长度<= 10
调用将添加新形状的父级,否则返回消息:"绘制的形状太多!
如何引用静态数组?
两个错误开始:
-
static
应该是statics
(复数) - 不是你需要它,因为...... -
inheritableStatics
是一个配置属性,而不是运行时访问器,如果要在子类中使用这些变量,则应在Shape
上定义。
Ext.define('Shape', {
// ...
inheritableStatics: {
drawnShapes: ['Shape1', 'Shape2']
}
});
然后,如果你想引用静态变量,你可以使用存在于每个对象实例上的 self
属性 - 它基本上是对它的原型/类的引用:
Ext.define('Rectangle', {
extend: 'Shape',
// ...
draw: function(/* args */){
console.log(this.self.drawnShapes); // do stuff
}
});
相关文章:
- 如何在javascript中获取静态公用文件夹中的文件列表
- 获取SW&谷歌静态地图API的东北角
- Ext 无法从基/抽象类中获取静态值
- 尝试从ajax静态WebMethod获取asp.net(C#)文本框文本时出错
- 获取静态元素在主体上的位置
- 使用纯 JavaScript 获取设备的静态屏幕宽度
- 如何在 Django 视图中获取静态 url
- WebGL - 获取光源的静态位置
- 节点.JS - 简单的 Socket.IO 示例不起作用.获取调试 - 提供静态内容/socket.io.js(Mac
- 如何获取 javascript 类中的静态方法列表
- 在静态 json 文件上的节点 js 上使用 getJSON 时不支持获取协议
- 获取 HTML 元素的所有静态数据属性,而无需内部绑定数据
- 从JavascriptMVC中的静态方法中获取静态属性的值
- jQuery获取url不是固定的/静态的
- 获取元素的值一次,然后保持该值为静态
- 如何在node.js中获取Rx/Tx字节(/packets)等网络静态信息
- 从nodejs/connect.static('./angularjs')获取静态文件失败
- 如何使用f.select获取静态哈希值
- 是否可以通过AJAX请求获取静态资产
- 跨域Ajax调用以获取静态Html