简单的功能和价值观的变化

时间:2013-10-07 13:31:08

标签: javascript node.js

我在节点工作,但我认为这主要是纯粹的Javascript问题。 可以说我有一个像这样的简单对象:

var simpleObject = {
  decimal: ' 314,2351 ', 
  id: '324fgfdhf34',
  mail: 'anders@JEJR.se'
  something: 'whateever...'
}

现在我想创建一个简单的清理函数,它将对象[property]作为参数,更改它并直接保存。我想将此函数放在节点模块中并要求它。

现在我在我的应用程序中需要的模块中有这个功能(还有一些......)并且绑定到变量名称“purify”

exports.toFloat = function(str) {
  str = str.replace(',', '.');
  str = parseFloat(str);
  return str;
}

在我的应用程序中,我可以写这个来使用函数:

simpleObject.decimal = purify.toFloat(simpleObject.decimal)

但我希望能够写出更短的内容......就像这样:

purify.toFloat(simpleObject.decial)

...并更改值并直接保存。

问题:我如何更改上面的代码,以便我可以写下来并使其有效:

purify.toFloat(simpleObject.decial)

1 个答案:

答案 0 :(得分:5)

您无法完全按照自己的意愿调用它,因为当您将参数作为simpleObject.decimal传递时,您丢失了对simpleObject的引用。你可以这样做,这非常接近:

exports.toFloat = function(obj, propName) {
  obj[propName] = parseFloat(obj[propName].replace(',', '.'));
}
// Usage:
purify.toFloat(simpleObject, 'decimal');