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
,而不是作为第一个参数传递。我也认为在我的情况下传递对象没有意义。我在某处发现了这只鹬,我不明白。