Javascript OO功能

时间:2014-11-04 16:30:47

标签: javascript jquery function

我需要一些关于JS函数的明显指示。

以下代码有效,但我想在任何地方调用它:

var pattern = /(\d{2})\-(\d{2})\-(\d{4})/;
var date = entry.date.split(' ');
var date = date[0];
var date = new Date(date.replace(pattern,'$3-$2-$1'));
var year = date.getYear();
var month = date.getMonth();
var day = date.getDay();

将此放在全局函数中的最佳做法是什么,所以我可以adjustDate(string)。双点(可悲的是,不是我的力量)来解释我如何能够访问所有对象,例如yearmonthday

提前致谢!

3 个答案:

答案 0 :(得分:2)

你不能宣布这个功能吗?

function adjustDate(entry) {
    var date = entry.date.split(' ');
    date = date[0];
    date = new Date(date.replace(/(\d{2})\-(\d{2})\-(\d{4})/, '$3-$2-$1'));

    return {
        year: date.getYear(),
        month: date.getMonth(),
        day: date.getDay()
    };
}

答案 1 :(得分:1)

将条目传递给函数,然后传递包含所需信息的对象。然后就像访问普通的JS对象一样访问它。

function adjustDate(entry) {
  var pattern = /(\d{2})\-(\d{2})\-(\d{4})/;
  var date = entry.date.split(' ');
  var date = date[0];
  var date = new Date(date.replace(pattern,'$3-$2-$1'));
  var year = date.getYear();
  var month = date.getMonth();
  var day = date.getDay();
  return { day: day, month: month, year: year }
}

var dateObject = adjustDate(/*entry*/)

dateObject.day // day
dateObject.month // month

答案 2 :(得分:1)

我只返回date而不抽象现有方法

function AdjustedDate(dateString)
{
    return new Date(dateString.split(' ')[0].replace(/(\d{2})\-(\d{2})\-(\d{4})/, '$3-$2-$1'));
}

var ad = AdjustedDate(entry.date);

alert(ad);
alert(ad.getDay());