用函数导出整个对象

时间:2014-04-17 20:42:03

标签: node.js

我尝试在stackoverflow中找到答案,但无法找到任何答案  我刚开始学习NodeJS。我有一个问题,有什么方法可以用他的函数导出整个对象,或者我只能导出对象的函数?

感谢您的建议!

当我尝试它时,我得到了这样的错误

TypeError: object is not a function

我得到了这样的简单代码:

animal.js

var Animal = {

   name : null,

   setName : function(name) {

      this.name = name;

   },

   getName : function() {

       console.log("name of animal is " + this.name);
   }

}


exports.Animal = Animal;

和server.js

  var animal = require('./animal');

  var ani = new animal.Animal();

1 个答案:

答案 0 :(得分:2)

错误是因为new期望FunctionAnimal是普通Object

但是,使用Object,您可以使用Object.create()创建实例:

// ...

var ani = Object.create(animal.Animal);

否则,您必须将Animal定义为构造函数Function

function Animal() {
    this.name = null;

    // ...
}

exports.Animal = Animal;

注意:根据您要完成的内容,FunctionObject的一种类型,可以包含其他属性。

function Animal(name) {
    this.name = name || Animal.defaultName;
}

Animal.defaultName = null;
相关问题