пользовательский модуль - узел js - PullRequest
2 голосов
/ 14 декабря 2011

У меня вопрос относительно определения объектов в модулях.

Допустим, у меня есть модуль:

/*---obj----*/
function A (param){
this.parm=param;
function func(){
//do somthing
 }
}
exports.func=func;

/*---file.js----*/
obj=require('obj');

function fileFunc(A){
A.func();//with out this line it works fine
A.param=2;
 }
}

по какой-то причине он не распознает функцию в объекте A. itраспознает объект A и его различные переменные, но когда дело доходит до выполнения функции, он выдает msg:
TypeError: Object # не имеет метода 'func'

Я пытался также экспортировать функцию в Aby: exports.A.func = A.func

или exports.func = func не работает ..

кто-нибудь имеет подсказку?

спасибо matti

1 Ответ

1 голос
/ 14 декабря 2011

Функция, которую вы определили внутри A, является локальной только для этой функции. То, что вы хотите, это

function A(param) {
  this.param = param;
}

A.func = function() {
  // do something
};

Но если вы рассматриваете A как конструктор, вы захотите поместить эту функцию в прототип A

A.prototype.func = function() {
  // do something
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...