我正在尝试构建一个相当基本的jQuery插件(主要是出于学习原因)并且在我添加limit
方法之前我没有出现错误,这看起来非常简单,但我得到以下内容控制台中的错误
未捕获的ReferenceError:未定义限制
它适用于下面的第二个if方法(标有注释)
$.fn.query = function(params) {
// Parameters //
var options = $.extend({
'shuffle' : false,
'limit' : undefined
}, params),
output = this;
// Shuffle //
if (shuffle) {
output = shuffle(this);
}
// Limit // !!!ERROR!!! //
if (limit !== undefined) {
output = output.slice(0, limit);
}
return output;
};
然后运行插件
var query = $(example).query({
shuffle: true,
limit: 5
});
我试图遵循所有最佳做法,但如果您发现任何奇怪的事情请告诉我。
这是一个包含所有代码的jsFiddle,你可以在控制台中看到错误。
答案 0 :(得分:4)
在限制前添加options.
。
options.limit
http://jsfiddle.net/JamesKyle/UWDsz/
您正在创建一个对象,因此为了访问它,您可以使用按句点object.variable
分割的对象和变量名称
更正了jQuery代码:
$.fn.query = function(params) {
// Parameters //
var options = $.extend({
'shuffle' : false,
'limit' : undefined
}, params),
output = this;
// Shuffle //
if (options.shuffle) {
output = shuffle(this);
}
// Limit // !!!ERROR!!! //
if (options.limit !== undefined) {
output = output.slice(0, options.limit);
}
return output;
};