Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对象文字和在IIFE中返回对象的函数之间的区别和优缺点是什么?_Javascript_Object Literal_Iife - Fatal编程技术网

Javascript 对象文字和在IIFE中返回对象的函数之间的区别和优缺点是什么?

Javascript 对象文字和在IIFE中返回对象的函数之间的区别和优缺点是什么?,javascript,object-literal,iife,Javascript,Object Literal,Iife,为了澄清这个问题,我理解了什么是生活和对象文字。但是,我不确定这两个示例之间的区别(除了一个是函数,另一个是对象文字): 例1: 例2: 这两个示例返回相同的结果,调用方式(几乎)相同。但是: 1) 它们之间的根本区别是什么? 2) 使用其中一个比另一个有好处吗? 3) 我看到的代码(在第二个示例中)return myStuff.arbiryvalue的工作原理与return myStuff().arbiryvalue的工作原理相同。这怎么可能呢? 4) 如果我只是想避免全局冲突并编写干净的

为了澄清这个问题,我理解了什么是生活和对象文字。但是,我不确定这两个示例之间的区别(除了一个是函数,另一个是对象文字):

例1:


例2:


这两个示例返回相同的结果,调用方式(几乎)相同。但是:

1) 它们之间的根本区别是什么?
2) 使用其中一个比另一个有好处吗?
3) 我看到的代码(在第二个示例中)
return myStuff.arbiryvalue
的工作原理与
return myStuff().arbiryvalue
的工作原理相同。这怎么可能呢?
4) 如果我只是想避免全局冲突并编写干净的代码,这是不是太过分了?
5) 这些例子中有一个被认为是“最佳实践”,还是有其他选择

非常感谢

1) 它们之间的根本区别是什么

第一个(可能)使用更少的CPU周期,因为它有一个更少的函数调用和更少的写入。它也更容易理解,因此可能更容易维护

2) 使用其中一个比另一个有好处吗

第一种方法使用更少的代码,并且可能更容易理解和维护

3) 我看到的代码(在第二个示例中)return myStuff.arbirryValue的工作原理与return myStuff().arbirryValue的工作原理相同。这怎么可能

也许使用,一个功能的,但不是

4) 如果我只是试图避免全局冲突并编写干净的代码,这是不是太过分了

是的,但是您还没有显示如何处理返回的值。在这个例子中,它消失在乙醚中

5) 这些例子中有一个被认为是“最佳实践”,还是有其他选择

“最佳”是指根据客观标准,对其他不太受欢迎的事物的抱怨。如果没有这些标准(可能是速度、健壮性、可维护性、支持或其他特性,理想与否),就无法确定

如果您提出一种情况,希望使用其中一种,则可以根据建议的标准(或您可能有的其他标准)并与备选方案进行比较,就是否有更好的方法给出建议

1) 它们之间的根本区别是什么

第一个(可能)使用更少的CPU周期,因为它有一个更少的函数调用和更少的写入。它也更容易理解,因此可能更容易维护

2) 使用其中一个比另一个有好处吗

第一种方法使用更少的代码,并且可能更容易理解和维护

3) 我看到的代码(在第二个示例中)return myStuff.arbirryValue的工作原理与return myStuff().arbirryValue的工作原理相同。这怎么可能

也许使用,一个功能的,但不是

4) 如果我只是试图避免全局冲突并编写干净的代码,这是不是太过分了

是的,但是您还没有显示如何处理返回的值。在这个例子中,它消失在乙醚中

5) 这些例子中有一个被认为是“最佳实践”,还是有其他选择

“最佳”是指根据客观标准,对其他不太受欢迎的事物的抱怨。如果没有这些标准(可能是速度、健壮性、可维护性、支持或其他特性,理想与否),就无法确定

如果您提出一种情况,希望使用其中一种,则可以根据建议的标准(或您可能有的其他标准)并与备选方案进行比较,就是否有更好的方法给出建议

1) 它们之间的根本区别是什么

第一个(可能)使用更少的CPU周期,因为它有一个更少的函数调用和更少的写入。它也更容易理解,因此可能更容易维护

2) 使用其中一个比另一个有好处吗

第一种方法使用更少的代码,并且可能更容易理解和维护

3) 我看到的代码(在第二个示例中)return myStuff.arbirryValue的工作原理与return myStuff().arbirryValue的工作原理相同。这怎么可能

也许使用,一个功能的,但不是

4) 如果我只是试图避免全局冲突并编写干净的代码,这是不是太过分了

是的,但是您还没有显示如何处理返回的值。在这个例子中,它消失在乙醚中

5) 这些例子中有一个被认为是“最佳实践”,还是有其他选择

“最佳”是指根据客观标准,对其他不太受欢迎的事物的抱怨。如果没有这些标准(可能是速度、健壮性、可维护性、支持或其他特性,理想与否),就无法确定

如果您提出一种情况,希望使用其中一种,则可以根据建议的标准(或您可能有的其他标准)并与备选方案进行比较,就是否有更好的方法给出建议

1) 它们之间的根本区别是什么

第一个(可能)使用更少的CPU周期,因为它有一个更少的函数调用和更少的写入。它也更容易理解,因此可能更容易维护

2) 使用其中一个比另一个有好处吗

第一种方法使用更少的代码,并且可能更容易理解和维护

3) 我看到的代码(在第二个示例中)return myStuff.arbirryValue的工作原理与return myStuff().arbirryValue的工作原理相同。这怎么可能

也许使用,一个功能的,但不是

4) 如果我只是试图避免全局冲突并编写干净的代码,这是不是太过分了

是的,但是您还没有显示如何处理返回的值。在这个例子中,它消失在乙醚中

(五)
(function(){
    var myStuff = {
        arbitraryValue: 42
    }
    return myStuff.arbitraryValue;
})();
(function(){
    var myStuff = function() {
        return {
            arbitraryValue: 42
        };
    }
    return myStuff().arbitraryValue;
})();