Javascript 如何通过将参数传递给func来更改默认值?
我为我的函数设置了默认值,但是当我想通过传递参数来更改它们时,值不会更改吗 这是一个 这是我的标记: HTML: Javascript:Javascript 如何通过将参数传递给func来更改默认值?,javascript,jquery,Javascript,Jquery,我为我的函数设置了默认值,但是当我想通过传递参数来更改它们时,值不会更改吗 这是一个 这是我的标记: HTML: Javascript: var InfiniteRotator = { init: function(domEle, options) { options = { itemInterval : 5000, fadeTime : 2500, currentItem : 0 }
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 = {…};
function(…, options) {
options = {…};
这样,您只需覆盖选项
参数。您需要的是使用参数中的属性创建默认选项对象:
function(…, customOptions) {
var defaults = {…};
var options = $.extend(defaults, customOptions);
...
更短、更少的变量混淆:
function(…, options) {
options = $.extend({…}, options);
...
这样,您只需覆盖选项
参数。您需要的是使用参数中的属性创建默认选项对象:
function(…, customOptions) {
var defaults = {…};
var options = $.extend(defaults, customOptions);
...
更短、更少的变量混淆:
function(…, options) {
options = $.extend({…}, options);
...
编辑:哎呀,太晚了
编辑:哎呀,太晚了。@BaliBalo:我认为你应该换一种方式来做-你的解决方案不允许覆盖这些内容properties@BaliBalo当前位置我认为你应该反过来做-你的解决方案不允许覆盖这些内容properties@skmasq:这是单个“可选”的标准解决方案参数但是,像您在问题帖中所做的那样,只传递一个具有一个属性的对象,将不允许您访问默认属性properties@skmasq:这是单个“可选”参数的标准解决方案。但是,像您在问题帖中所做的那样,只传递一个具有一个属性的对象,将不允许您访问默认属性
function(domEle, options) {
options = $.extend({
itemInterval : 5000,
fadeTime : 2500,
currentItem : 0
}, options);
}