我经常看到名为SOMETHING.something
的类-例如在Three.js中可以做到的
var geometry = new THREE.BoxBufferGeometry( 1, 1, 1 );
var material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
var mesh = new THREE.Mesh( geometry, material );
但是我不知道如何定义一个类来做到这一点。
我知道我可以做到:
class Foo {
constructor(name) {
this.name = name;
}
}
Foo.Bar = function (name) {
this.name = name;
}
Foo.Bar.prototype.greet = function(){
console.log(this.name);
}
var f = new Foo.Bar('gigi');
f.greet()
但是看起来我做不到
class Foo {
constructor(name) {
this.name = name;
}
}
class Foo.Bar {
constructor(name) {
this.name = name;
}
}
我得到这个:
class Foo.Bar {
^
SyntaxError: Unexpected token .
那怎么办?
答案 0 :(得分:1)
您可以将新的类分配给Bar
的{{1}}属性:
Foo
答案 1 :(得分:0)
有类表达式:
Foo.Bar = class { /*...*/ };
我可以在班级名称中使用点吗?
不。该点在JS中用于注释属性访问,因此Foo.Bar
始终表示“ Foo的Bar属性”。