我如何定义名为SOMETHING.something的类?

时间:2019-05-05 20:31:34

标签: javascript

我经常看到名为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 .

那怎么办?

2 个答案:

答案 0 :(得分:1)

您可以将新的类分配给Bar的{​​{1}}属性:

Foo

答案 1 :(得分:0)

有类表达式:

 Foo.Bar = class { /*...*/ };
  

我可以在班级名称中使用点吗?

不。该点在JS中用于注释属性访问,因此Foo.Bar始终表示“ Foo的Bar属性”。

相关问题