这是一个有点菜鸟的问题,但是来自服务器端(PHP)背景,我在创建 javaScript 对象和类的不同方式之间的概念差异方面有点挣扎。
我有两个片段,它们代表相同的代码,但以不同的方式实现。
我想知道您何时以及为什么会选择其中一个而不是另一个?
var foo = {
init: function() {
console.log('loading...');
console.log(this.param);
return this;
},
param: '5',
bar: function(){
console.log('bar bar');
this.black();
this.sheep();
return this;
},
black: function(){
console.log('black');
return this;
},
sheep: function(){
console.log('sheep');
console.log(this.param);
return this;
}
};
foo.init().bar();
然后是选项二:
var foo = function(){
return {
init: function() {
console.log('loading...');
console.log(this.param);
return this;
},
param: '5',
bar: function(){
console.log('bar bar');
this.black();
this.sheep();
return this;
},
black: function(){
console.log('black');
return this;
},
sheep: function(){
console.log('sheep');
console.log(this.param);
return this;
}
};
}
foo().init().bar();
为什么要在第二个示例中使用 return {}?