Javascript对象相关

时间:2012-03-15 18:42:32

标签: javascript javascript-objects

我正在努力完成这样的事情。

/* Code start */

  function getCurrentTime()
  {
      var date = new Date(),
      time = date.getTime();

      return time;
   }


var jsObject = {
                 "imageOne":"SomeText"+getCurrentTime(),
                 "imageTwo":"someOtherText"+getCurrentTime()
                }


setInterval(function(){
        console.log(jsObject.imageOne);

        }, 3000);
/* Code end */

每次执行定时器时,我都需要执行getCurrentTime()并获取最新时间。我该怎么做?

2 个答案:

答案 0 :(得分:3)

如果你需要每次执行并获得不同的结果,你基本上需要一个函数:

"imageOne": function() {
  return "SomeText" + getCurrentTime();
},

console.log(jsObject.imageOne());

如果确实有必要,可以使用getter省略(),但使用函数更直接。


使用getter:

get imageOne() {
  return "SomeText" + getCurrentTime();
},

这样,访问obj.imageOne每次都会评估为不同的值,具体取决于当前时间。

答案 1 :(得分:1)

试试这个:

var jsObject = {
    "imageOne":"SomeText",
    "imageTwo":"someOtherText",
    getLatestByName : function (name) {
       return this[name] + getCurrentTime();
    }
};


setInterval(function(){
    console.log(jsObject.getLatestByName("imageOne"));
}, 3000);

这里是小提琴:http://jsfiddle.net/R7JQ3/