javascript闭包不保留外部作用域的变量值

时间:2016-07-26 13:40:24

标签: javascript

.filter('asRelapsedTime', function(ConfigService) {
  var DECIMAL_STYLE = ',';

   return function(value, decimalPlaces) {
     let decimalizedNumber;
     if (decimalPlaces) {
       decimalizedNumber = value.toFixed(decimalPlaces | 0);
     } else {
       decimalizedNumber = value.toString();
     }

     decimalizedNumber = decimalizedNumber.replace('.'. DECIMAL_STYLE);

     return decimalizedNumber;
   };
});

从上面的代码中,DECIMAL_STYLE应该可以在内部函数中使用。但事实并非如此。我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

decimalizedNumber.replace('.'. DECIMAL_STYLE);:这里有一个错字。

此代码无法执行。

使用逗号将DECIMAL_STYLE作为第二个参数传递给replace()

decimalizedNumber.replace('.', DECIMAL_STYLE);
                             ^

如果字符串中有多个.,请使用带有g标志的RegEx来替换所有出现的内容

decimalizedNumber.replace(/\./g, DECIMAL_STYLE);