2

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

4

1 回答 1

4

通过return这样使用,您可以实现显示模块设计模式,但是我在您的示例中看不到任何用例。OOP真的是根据你的需要。我鼓励您首先寻找您真正需要做的事情,然后寻找适合您需要的设计模式。

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

PHP 中的 PPS OOP 与 Javascript 中的 OOP 非常不同。我猜这可能是您感到困惑的原因。

于 2013-09-05T08:11:23.607 回答