javascript - 如何通过向 func 传递参数来更改默认值?

标签 javascript jquery

我为函数设置了默认值,但是当我想通过传递参数来更改它们时,值不会改变?

这是一个JsFiddle example

这是我的标记:

HTML:

<div class='container'>
    <img src='https://encrypted-tbn0.google.com/images?q=tbn:ANd9GcRbQ6aMnp7uA2VHgEOY6oU24DcB-ZvoBF_puGTB6kq4c8DyMJr2'/>
    <img src='http://www.fullscreensavers.com/pics/nature02l.jpg' />
    <img src='http://www.fullscreensavers.com/pics/nature03l.jpg' />
</div>

CSS:

.container{
    position: relative;
    margin: 0 auto;
    width: 200px;
    height: 200px;
    margin-top: 50px;
}

.container img{
    position: absolute;
    top: 0;
    left:0;
    width: 100%;
    height: 100%;
    display: none;
}
​

Javascript:

var InfiniteRotator = {
    init: function(domEle, options) {
        options = {
            itemInterval : 5000,
            fadeTime : 2500,
            currentItem : 0
        };
        //count number of items
        var numberOfItems = $('img', domEle).length;
        //show first item
        $('img', domEle).eq(options.currentItem).fadeIn();
        //loop through the items
        var infiniteLoop = setInterval(function() {
            $('img', domEle).eq(options.currentItem).fadeOut(options.fadeTime);
            if (options.currentItem == numberOfItems - 1) {
                options.currentItem = 0;
            } else {
                options.currentItem++;
            }
            $('img', domEle).eq(options.currentItem).fadeIn(options.fadeTime);
        }, options.itemInterval);
    }
};

InfiniteRotator.init($(".container"),{currentItem: 1});​

最佳答案

function(…, options) {
    options = {…};

这样,您只需覆盖 options 参数即可。你想要的是extend具有参数属性的默认选项对象:

function(…, customOptions) {
    var defaults = {…};
    var options = $.extend(defaults, customOptions);
    ...

更短、变量更少的困惑:

function(…, options) {
    options = $.extend({…}, options);
    ...

关于javascript - 如何通过向 func 传递参数来更改默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11819871/

相关文章:

javascript - 类中存在的图像逐渐淡入(HTML/CSS/JS)?

javascript - 从动态创建的选择表单中检索选项

javascript - PHP 和表单处理事件

javascript - 打开或关闭响应式菜单时的内容覆盖

jquery错误: val() is not a function

php - 为我的网站寻找标签脚本

javascript - 停止 hbs 上显示错误的 Webstorm! require.js 的插件

javascript - $http.get AngularJS 不返回数据

JavaScript 比较数组来标记特定元素的出现

javascript - 将 ":invalid"样式应用于表单控件时出现表格列宽问题