以下对象声明之间有什么区别?

时间:2019-06-20 17:01:02

标签: javascript object

我在PoC上工作,偶然发现了一些代码,但是我没有发现差异,或者不知道这种声明对象的方式,即d和g之间的差异

var d;
(function(d) {
  function f() {
    console.log(23);
  }
  d.fo = f;
})
(d || (d = {}));

var g = {
  fo: function() {
    console.log(44);
  },

  me: function() {
    console.log(33);
  }
}
d.fo();
g.fo()

1 个答案:

答案 0 :(得分:0)

第一种方法允许您将fo方法添加到d中的任何现有对象,如果未初始化d,则默认情况下会创建一个新对象。例如。你可以改变

var d;

var d = { a: 3};

第二种方法总是创建一个新对象g,该对象仅具有其中定义的属性(尽管您以后可以随时添加新属性)。

除这些以外,没有什么显着差异,只是风格不同。