在JavaScript中使用module pattern时,定义模块函数以返回对象文字是否有所不同:
var Person1 = (function(name) {
return {
talk: function(message) {
console.log(name + ' said, "' + message + '".');
}
};
})('Steve');
VS。定义通过点表示法(或括号)构建对象的函数,然后返回对象:
var Person2 = (function(name) {
var self = {};
self.talk = function(message) {
console.log(name + ' said, "' + message + '".');
};
return self;
})('Bob');
这两个定义返回的对象之间有区别吗?或者仅仅是编码风格偏好的问题?
如果唯一的区别是风格,为什么你会提倡一种风格而不是另一种?
虽然Person1风格似乎更受欢迎,但我更喜欢Person2风格:
有什么我不考虑的吗?
答案 0 :(得分:0)
不,它完全相同,都创建一个对象,然后返回它。
根据我的口味,如果要返回的对象很简单,我更喜欢第一种符号,主要是因为可读性原因。