Javascript 以下对象声明之间有什么区别?
我正在开发一个PoC,我偶然发现了一些代码,但我不知道它们之间的区别,也不知道这种声明对象的方式,d和g之间的区别Javascript 以下对象声明之间有什么区别?,javascript,object,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);
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()
第一种方法允许您将
fo
方法添加到d
中的任何现有对象,如果d
未初始化,则默认情况下会创建一个新对象。你可以改变
var d;
到
第二种方法总是创建一个新的对象g
,该对象只具有在其中定义的属性(尽管您以后总是可以添加新属性)
除此之外,没有什么显著差异,它们只是不同的样式。第一种方法允许您将
fo
方法添加到d
中的任何现有对象中,如果d
未初始化,则默认情况下会创建一个新对象。你可以改变
var d;
到
第二种方法总是创建一个新的对象g
,该对象只具有在其中定义的属性(尽管您以后总是可以添加新属性)
除了这些,没有什么显著的区别,它们只是不同的风格。我想第二种方式更干净。第一种方法使用iLife,但我认为没有必要使用iLife来查看对象文字语法。我想第二种方法更简洁。第一种方法使用iLife,但我认为没有必要使用iLife查看对象文字语法。