使用动态名称初始化对象-coffeescript/node.js/javaScript
我试图建立一个插件系统,我不知道插件事先。使用browserify中的“require”初始化对象。详情如下:使用动态名称初始化对象-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
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;
}
谢谢,我一直在玩这个,很明显我把它放错地方了。我已将你的答案标记为已接受答案,谢谢。