gpt4 book ai didi

javascript - 您将如何使用这两种概念上不同的方法来编写 javaScript 对象

转载 作者:行者123 更新时间:2023-11-29 18:21:09 26 4
gpt4 key购买 nike

这是一个有点菜鸟的问题,但来自服务器端 (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 {}?

最佳答案

通过像那样使用return,你可以实现revealing module design pattern ,但是我在您的示例中看不到任何用例。 OOP 真正基于您的需要。我鼓励您首先寻找您真正需要做的事情,然后寻找合适的设计模式来满足您的需求。

附言我假设你已经看过一些例子,但你真的没有理解它们背后的想法,所以你认为它们是一样的。老实说,你的第二个例子对我来说没有任何意义,但我可能是错的。

附言PHP 中的 OOP 与 Javascript 中的 OOP 截然不同。我想这可能是您感到困惑的原因。

关于javascript - 您将如何使用这两种概念上不同的方法来编写 javaScript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18630663/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com