定义对象时的JavaScript语法未知

时间:2017-12-09 05:02:43

标签: javascript

我遇到了一些我以前没见过的JavaScript语法。有人可以帮我指出正确的方向,我甚至不确定我可以谷歌了解更多:/

$.variable = function() {
  return a(b, [{
    key: "setPeriod",
    value: function(t) {
      this.variable.period = t;
    }
  }, {
    key: "location",
    get: function() {
      return "earth";
    }
  }])
}

$.variable.setPeriod("test");
$.variable.location;

我的问题是这个结构是什么,通过列表定义对象。另外还不确定valueget之间的区别。任何帮助将不胜感激。

以下是代码段的示例:
{{3}}

1 个答案:

答案 0 :(得分:1)

这里我猜测这个对象列表会发生什么:

var o = s([{
  key: "attribute",
  value: "default"
}, {
  key: "getAttribute",
  value: function () {
    return this.attribute;
  }
}, {
  key: "setAttribute",
  value: function (value) {
    this.attribute = value;
  }
}]);

console.log(o.getAttribute());
o.setAttribute("custom");
console.log(o.getAttribute());

function s (members) {
  var o = {};
  members.forEach(function (member) {
    o[member.key] = member.value;
  });
  return o;
}

我想框架需要预先处理对象的成员,这是出于与框架内部机制相关的一些模糊原因。