Object 从CoffeeScript中的函数返回对象

Object 从CoffeeScript中的函数返回对象,object,three.js,coffeescript,Object,Three.js,Coffeescript,我有一段代码,我正在写,应该动画的三维场景。我使用类和函数在代码中整齐地构造3D场景。这本身就是一个文本输出的东西 从逻辑上讲,它不需要只吐出文本。库Threejs应该与我构建的内容交互 我想这样做,例如: 类平铺扩展了超空间 身高:2 边长:10 类平面扩展平铺 构造函数:({@color='lightgreen',@height=@height,@heightPlacement=2}={})-> console.log”“” 新平原: 颜色:“#{@color}” 边长:#{@sideLen

我有一段代码,我正在写,应该动画的三维场景。我使用类和函数在代码中整齐地构造3D场景。这本身就是一个文本输出的东西

从逻辑上讲,它不需要只吐出文本。库Threejs应该与我构建的内容交互

我想这样做,例如:

类平铺扩展了超空间
身高:2
边长:10
类平面扩展平铺
构造函数:({@color='lightgreen',@height=@height,@heightPlacement=2}={})->
console.log”“”
新平原:
颜色:“#{@color}”
边长:#{@sideLength}
高度:#{@height}
heightPlacement:#{@heightPlacement}
"""
网格:->
几何体=新的三箱几何体10/10、2/10、10/10
材质=新的3.MeshBasicMaterial{颜色:0x22ff22}
立方体=新的三个。网格几何体,材质
返回立方体
在场景中简单地这样称呼它:

scene.add plain.mesh
这只不过是文档中修改过的现有示例
plain.mesh
应该是返回的
cube

不知怎的,这个物体没有进入槽中。我要么得到未定义的
,要么在控制台中得到我的全部功能:

函数(){
变量立方体、几何体、材料;
几何体=新的三个盒子几何体(10/10,2/10,10/10);
材料=新的三网格基本材料({
颜色:0x22ff22
});
立方体…
很难令人满意。有什么建议吗?

这很有效:

class Tile extends SuperSpace
  height: 2
  sideLength: 10
class Plain extends Tile
  constructor: ( { @color = 'lightgreen', @height = @height, @heightPlacement = 2 } = {} ) ->
    console.log """
                  New plain:
                    color: '#{@color}'
                    sideLength: #{@sideLength}
                    height: #{@height}
                    heightPlacement: #{@heightPlacement}
                """
  mesh: ->
    geometry = new THREE.BoxGeometry 10/10, 2/10, 10/10
    material = new THREE.MeshBasicMaterial { color: 0x22ff22 }
    cube = new THREE.Mesh geometry, material
    return cube

plain = new Plain()
console.log plain.mesh()

这是一个函数引用:
plain.mesh
。这是一个函数调用:
plain.mesh()
。当没有任何参数时,括号是必需的。