考慮以下幾點:交叉模塊功能範圍?它在哪裏尋找
include.js
module.exports = function() {
...
return {
func: function(val) {
return Function('return ' + val + ';');
}
}
}()
running.js
var outer = function() {
var include = require('./include.js');
var x = include.func('eq');
console.log(x(5, 5));
}
outer()
...這裏我願意把這樣function eq(x, y){ return x === y; }
,這將工作?我目前正在調用該函數的線路上獲得eval at <anonymous>
; x(5,5)在這種情況下。
時eq
是include.js
或當它在running.js
〜我知道這是示例代碼是從我的項目採取搞得很曖昧......可是,如果有可能它不喜歡,哪裏會是功能去?
OR
...它會更好,其中鍵是函數的名稱來定義的函數對象?
defaultFuncs = {
'eq': function(x, y){ return x === y; }
}
幾乎每當您發現自己在考慮'新功能'時,假設有更好的方法是非常安全的。 – loganfsmyth
是的,我不喜歡它;即使它是一個內部工具...我認爲defaultFuncs對象將會更好地工作。 – blakev