Javascript - can类路径有名称空间
Javascript - can class paths have namespaces?
我知道我可以用下面的代码创建一个类:
class Polygon {
constructor(height, width) {
this.height = height;
this.width = width;
}
}
然而,我希望这个Polygon
类驻留在一个名为Model
的命名空间中,这样我就可以像这样实例化Polygon
对象:
var myNewPolygon = new Model.Polygon(10, 50);
这可能吗?
我已经试过了:
var Model = Model || {};
class Model.Polygon {
constructor() {
this.height = height;
this.width = width;
}
}
var myNewPolygon = new Model.Polygon(10, 50);
但是这会导致第2行出现Uncaught SyntaxError: Unexpected token .
。
我也试过了:
var Model = Model || {};
class Polygon {
constructor(height, width) {
this.height = height || 0;
this.width = width || 0;
}
}
Model.Polygon = new Polygon();
var myNewPolygon = new Model.Polygon(10, 50);
但是这会导致第9行出现Uncaught TypeError: Model.Polygon is not a constructor
快到了。
var Model = Model || {};
Model.Polygon = class {
constructor(height, width) {
this.height = height || 0;
this.width = width || 0;
}
}
var myNewPolygon = new Model.Polygon(10, 50);
类可以像函数一样被命名(又名"匿名"),也可以像函数一样,未命名的类可以被赋值给变量,就像上面的Model.Polygon = class { ... }
如果需要类在类体中引用自己,那么可以给它起一个名字。请注意,类名在类体之外是不可用的。
var Model = Model || {};
Model.Polygon = class Polygon {
constructor(height, width) {
this.height = height || 0;
this.width = width || 0;
}
equals(other){
// Returns true if other is also an instance of Polygon
// and height and width are the same.
return ( other instanceof Polygon ) &&
( other.height === this.height ) &&
( other.width === this.width );
}
}
var myNewPolygon1 = new Model.Polygon(10, 50);
var myNewPolygon2 = new Model.Polygon(10, 50);
myNewPolygon1.equals( myNewPolygon2 ); // returns true
myNewPolygon1.equals({ height: 10, width: 50 }); // returns false
var myNewPolygon3 = new Polygon(10, 50); // Uncaught ReferenceError: Polygon is not defined
相关文章:
- JavaScript名称空间和对象创建
- JSDoc:模块和名称空间之间的关系是什么
- EmberJS-适用于各种模型的适配器动态名称空间
- 如何为HTML属性/选择器创建全局名称空间或变量
- Socket.io客户端在使用名称空间时忽略端口[Bug?]
- 在javascript中,别名名称空间
- 如何在javascript模块中包含jquery而不与全局名称空间冲突
- Javascript对象/名称空间-如何访问从嵌套函数添加的属性(包括示例)
- 声明Javascript名称空间的两种方法之间的区别
- 在jQuery中选择一个具有名称空间的节点
- 获取调用属于其属性或名称空间原型之一的函数的对象
- 当名称空间在id参数之前声明时,Angular UI路由器停止工作
- 获取构造函数函数的最佳方式是在JavaScript中使用带名称空间的字符串表示
- Javascript的名称空间大小写是否有标准
- 什么是xml dom名称空间,为什么一些dom方法在它们的末尾有NS
- 将Ext.Loader配置为每个名称空间有一个文件
- 如果根元素有名称空间' xmlns ',则不工作
- 在javascript中使用名称空间有什么好处?
- Javascript - can类路径有名称空间
- 这两种方法都创建名称空间吗?还是有区别?