簡體   English   中英

node.js需要問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM