Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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 调用像这样的函数CH.home.init({})或CH.home.init()有什么不同?_Javascript_Jquery - Fatal编程技术网

Javascript 调用像这样的函数CH.home.init({})或CH.home.init()有什么不同?

Javascript 调用像这样的函数CH.home.init({})或CH.home.init()有什么不同?,javascript,jquery,Javascript,Jquery,我想知道调用这样的函数是否有区别 CH.home.init({}) 还是像调用普通函数一样调用它 CH.home.init() 以下是它的上下文: var CH = CH || {}; CH.core = function () { CH.home.init({}); }, ... CH.home = function () { function init(a) { $.extend(k, a) ...

我想知道调用这样的函数是否有区别

CH.home.init({})
还是像调用普通函数一样调用它

CH.home.init()
以下是它的上下文:

var CH = CH || {};  
CH.core = function () {
        CH.home.init({});
    },
...
CH.home = function () {
    function init(a) { 
      $.extend(k, a)   
      ...

                var k = {
                        aDatas: null,
                        loaderId: "home",
                        transitionEase: "cubic-bezier(0.18, 0.11, 0.3, 1)",
                        timer: null,
                        nbRandom: 1,
                        ratioImg: .625,
                        opacityOff: .35,
                        speedOpacity: 400,
                        delayHome: 2500,
                        indexBkg: 0,
                        $logo: $("h1"),
                        $nav: $("nav"),
                        $lineH: $("span.lineH"),
                        $lineV: $("span.lineV"),
                        imgs: [{
                            src: "chny.jpg",
                            align: "top"
                        }, {
                            src: "ch.jpg",
                            align: "top"
                        }, {
                            src: "212.jpg",
                            align: "top"
                        }, {
                            src: "house.jpg",
                            align: "middle"
                        }]
                    };

显然,论点是不同的。在
init({})中
传递的是空的,而在
init()中
没有传递任何内容。这是否会对结果产生影响取决于
init
函数的作用,不幸的是,您没有向我们展示它


init
函数中,参数用于
k
对象,这似乎没有什么区别。如果没有传递任何内容,则
a
将是
未定义的
,并且
$.extend
k
没有任何作用-就像在没有键的情况下扩展它一样。

CH.home.init({})
使用空对象作为参数调用
CH.home.init
,而
CH.home.init()
正在调用
CH.home.init
而没有参数

这里
CH.home.init({})
调用函数时传递的是一个空对象。请注意,您在“上下文”中向我们显示的
init
CH.home()
的本地函数,而不是
CH.home
的属性。您可以在此处看到帖子的编辑历史:。问题通常经过编辑以更正拼写、语法和格式。您的问题与您在编辑中链接到的问题之间的区别在于,另一个问题的上下文更加清晰。作者知道
$.extend
是如何工作的,并且想知道将空对象作为第一个参数传递有什么好处。你只是问
randomFunc(a)
randomFunc()
之间的区别是什么,这根本不是一个好问题,因为答案是:传递参数。谢谢Felix。你说得对。好的,我在代码中添加了一点。我理解,它扩展了var=k;我不明白为什么。是否有可能访问此空对象?请参见此处的答案:@hamburger:但在该问题中,参数的顺序不同。您将
a
(nothing,empty object,可选选项)作为
$的第二个参数传递。extend
,而不是作为第一个参数传递。我也认为在我的情况下传递对象没有意义。我在某处发现了这只鹬,我不明白。