[英]node.js require issue
我是按照這個實現的。
//to_s.js
(function(){
String.prototype.to_s = function(){
var str = this.toString();
var convert = function(s){
return eval(s);
};
while(/#{(\w+)}/.test(str)){
// bad because I use eval...
var matchStr =RegExp.$1;
var str = str.replace(/#{(\w+)}/,convert(matchStr));
}
return str;
};
})();
module.exports = String.prototype.to_s;
// test/to_s_test.js
require("./../to_s");
var name = 33;
"hello #{name}".to_s();
我運行to_s_test.js,但它發生'name is undefined'的錯誤。但我不知道為什么會發生。但是將'var name = 33'改為name = 33,它有效......你有什么想法? 提前致謝。
它只能在沒有var
情況下工作,因為eval
發生在另一個上下文中,因此只能使用您的方法訪問全局變量。 當您不聲明變量時,將自動創建全局; 但是,在node.js中,模塊中聲明的變量不是全局變量。
這就是為什么, 正如我之前提到的 ,試圖使語言符合其他語言的習語是一個壞主意 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.