0

事前にプラグインがわからないプラグイン システムを構築しようとしています。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" }

2 つ目は失敗しますが、plugin.getName は関数ではありません。

ヘルプ/ガイダンスをいただければ幸いです。私は JS 開発者ではなく、coffeescript/node.js も初めてです。

ありがとう。

4

1 に答える 1

1

あなたは@前を持っているべきではありませんgetName

を持っていること@はJSでこれと同等です

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

ただし、この場合getNameは、MyClassインスタンスではなく、クラス自体の関数です。

がない場合@、このようにgetName: ->、JSは次のようになります。

MyClass.prototype.getName = function(){
  return this.name;
}
于 2012-05-21T16:35:16.683 に答える