Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用动态名称初始化对象-coffeescript/node.js/javaScript_Javascript_Node.js_Coffeescript - Fatal编程技术网

使用动态名称初始化对象-coffeescript/node.js/javaScript

使用动态名称初始化对象-coffeescript/node.js/javaScript,javascript,node.js,coffeescript,Javascript,Node.js,Coffeescript,我试图建立一个插件系统,我不知道插件事先。使用browserify中的“require”初始化对象。详情如下: class.coffee: class MyClass name: "my-class" constructor: -> @getName: -> return @name exports.plugin = new MyClass 然后从调用文件中我得到: pluginName = # from a config f

我试图建立一个插件系统,我不知道插件事先。使用browserify中的“require”初始化对象。详情如下:

class.coffee:

   class MyClass
    name: "my-class"
    constructor: ->

    @getName: ->
        return @name

  exports.plugin = new MyClass
然后从调用文件中我得到:

pluginName = # from a config file
{ plugin } = require './#{pluginName}.coffee'
console.log plugin
console.log plugin.getName()
第一个记录器调用给我:

MyClass{ name="my-class" }
第二个失败,但是plugin.getName不是一个函数

感谢您的帮助/指导。我不是一名JS开发人员,也不熟悉coffeescript/node.JS


谢谢。

您不应该在
getName
之前使用
@

拥有
@
相当于JS中的这一点

MyClass.getName = function(){
  return this.name;
};
但是在本例中,
getName
是类本身的函数,而不是MyClass实例

没有
@
,像这样,
getName:->
JS是这样的:

MyClass.prototype.getName = function(){
  return this.name;
}

谢谢,我一直在玩这个,很明显我把它放错地方了。我已将你的答案标记为已接受答案,谢谢。