Javascript 成员变为未定义
我开发了一个jQuery插件,它有默认选项:Javascript 成员变为未定义,javascript,jquery,Javascript,Jquery,我开发了一个jQuery插件,它有默认选项: $.fn.incromentor.defaults = { max : 65355, min : 0 }; 在插件初始化过程中,我使用$将用户选项与插件默认选项合并。extend function init( $elm, options ) { this.$element = $elm; this.options = $.extend( {}, $.fn.incromentor.defaults, options );
$.fn.incromentor.defaults = {
max : 65355,
min : 0
};
在插件初始化过程中,我使用$将用户选项与插件默认选项合并。extend
function init( $elm, options )
{
this.$element = $elm;
this.options = $.extend( {}, $.fn.incromentor.defaults, options );
}
所以问题是,如果用户将min
或max
设置为0
,该属性将变为未定义这是为什么?我如何存储一个简单的0 这里有一个JSFIDLE: 编辑
在JSLint中对代码进行lint后,错误消失了,因此我怀疑键入时有一个模糊的错误。$.fn.incromentor.defaults={}将覆盖您的默认选项,因此其他一些内容(如多文本、少文本)将变为未定义。用户应将其选项传递到构造函数中,例如
$('#myel').Incrementor({ max : 65355, min : 0});
--
$this to$(this)无法复制:它甚至可以与jQuery 1.2.6一起使用。您刚才不是输入错误了吗,有效地执行了类似
$.extend({},未定义,options)的操作代码>?嗯,这就是我怀疑的。。。我已经用完整的代码创建了一个JSFIDLE,我在其中放了一个console.log()来说明我的意思:我不完全确定,但是您可能想看看JS Lint按钮(在JS FIDLE中)报告的错误。虽然.JS Lint修复了构造函数中的选项设置,但它们可能什么都没有。还有其他一些逻辑错误也必须修复,但主要错误已经消失了!请参阅更新的anwswer,JSFIDLE似乎已关闭,因此现在无法测试将$.fn.incromentor.defaults设置为{}的位置?