동적으로 함수를 선언하는 데 어려움을 겪고 있습니다. 이 질문에 답하기 위해 좀 더 일반적인 질문을 시도했지만이 경우 실제로 무엇을하는지 모르고 내 코드로 돌아 왔습니다.Javascript : 함수를 동적으로 선언하는 올바른 방법
로그 수준 (아래 코드에서 볼 수 있습니다)이 포함 된 json 개체가 있고 각 로그 수준에 대해 호출 할 수 있도록 함수를 만들어야합니다 (예 : log.info ('my log message');
내가 겪고있는 문제는 log.info()를 호출 할 때 발생합니다. log.error()가 호출 될 수있는 모든 이유로 '정보'가 호출 될 수 없다는 것을 알 수 없습니다. 동일한 동적 코드와 나는 이것을 호출하는 함수를 탐지하는 방법을 모른다.
나는 그것이 의미가 있기를 바랍니다. 나는 지금까지 내 코드가 아래에 있으므로 Node.js에 이것을 쓰고있다. 내 문제 기능이 어디에 있는지, 그리고 로그 수준을 표시 할 위치를 말한 의견이 있습니다.
exports.logger = function() {
// Syslog severity levels
var levels = {
emerg: { "code": 0 },
alert: { "code": 1 },
crit: { "code": 2 },
error: { "code": 3 },
warning: { "code": 4 },
notice: { "code": 5 },
info: { "code": 6 },
debug: { "code": 7 }
};
// Loop through each severity level
for (var severity in levels) {
// Ensure we're not iterating over a prototype
if (levels.hasOwnProperty(severity)) {
// Declare function
this[severity] = function(message) {
// Here's the problem: I have no idea what called this function.
console.log('Log severity level here:', message);
};
}
}
}
이 내가 그것을 호출하는 방법입니다
var logger = require('log.js');
var log = new (logger.logger)(
// settings removed for example
);
log.info('test');
덕분에 시간이에 붙어 있었다 :) –