var foo= {} ;foo.method() 和 function foo有什么区别

发布于 2022-09-01 13:10:36 字数 793 浏览 10 评论 0

var Foo={}
Foo.method = function() {
        return {
            a:function(){
                console.log('aa')
            },
            b:function(){
                console.log('bb')
            }
        }
}
Foo.method().a();
Foo.method().b();

var bar=(function(){
    var instance;
    function init(){
        return {
            a:function(){
                console.log('cc')
            },
            b:function(){
                console.log('ee')
            }
        }
    }
    return {
        method : function (){
            if(!instance) {
                instance = init()
            }
            return instance
        }
    }
}());
bar.method().a()

```
一直弄不懂 这两种写法有什么区别 分别适应于什么情况 那个写法更优一点呢? 跪求解惑

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

作业与我同在 2022-09-08 13:10:36

直接一点的区别:

javascriptvar aaa = Foo.method();
var bbb = Foo.method();
aaa === bbb; //false

var ccc = bar.method();
var ddd = bar.method();
ccc === ddd; //true

第二种方式相当于对执行结果做了缓存,好处就是缓存该有的好处(再次读取时更快),坏处也是缓存的坏处(占用资源/内存 更多,更久)。

拧巴小姐 2022-09-08 13:10:36

第二种是单例的实现方式

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文