请随时将tittle更新为更合适的。我不确定如何说出来。
因此,当我需要为网站编写jQuery
时,我已经养成了一种习惯(不确定是好还是坏)。我只在快速而肮脏的工作中使用它,其中需要单个文件且几乎没有依赖性,而AMD,RequireJS和CommonJS都是过度的。它基于格雷格·弗兰科的this文章。
它确保一切安全且无冲突,并确实有助于提高可读性。不幸的是,虽然我发现它后,它成了我所有事情jQuery
的模板,我从来没有费心去研究它的陷阱对性能的影响。
话虽如此,我想就此技术可能出现的任何问题得到一些反馈,特别是如果我应该使用它或其他技术。
当通过JSLint
时,我总是会遇到以下错误:
'a' was used before it was defined.
$('#a').on('click', a);
Unused 'a'.
function a() {
我知道为什么错误存在以及它们意味着什么,但我希望有一个带有我的配置选项的传递JS文件,它可以工作......
/*jslint browser: false, couch: false, devel: false, node: false, rhino: false, passfail: false, ass: false, bitwise: false, closure: false, continue: false, debug: false, eqeq: false, evil: false, forin: false, newcap: false, nomen: false, plusplus: false, regexp: false, unparam: false, sloppy: false, stupid: false, sub: false, todo: false, vars: false, white: false, indent: 4 */
/*global window, document, location, jQuery*/
(function (appLoad) {
"use strict";
appLoad(window.jQuery, window, document);
}(function ($, window, document) {
"use strict";
$(function () {
// These are executed when the document is ready
$('#a').on('click', a);
$('#b').on('click', b);
$('#c').on('click', c);
});
// Logic that is not dependent on the document being ready is below here.
// I typically place all my logic functions here for readability.
function a() {
...
}
function b() {
...
}
function c() {
...
}
}));
有没有更好的方法来做我说明的事情?
答案 0 :(得分:1)
JSLint只抱怨您的代码如下所示:
$(function() {
$('#a').on('click', a);
});
function a() {
// ...
}
而不是:
function a() {
// ...
}
$(function() {
$('#a').on('click', a);
});
因此,如果你想摆脱那个警告,你可以移动这些功能。
那就是说,可能会牺牲清晰度,你可以重写
(function (appLoad) {
"use strict";
appLoad(window.jQuery, window, document);
}(function ($, window, document) {
// ...
}));
作为
(function ($, window, document) {
// ...
}(window.jQuery, window, document));
但这并不是JSLint所抱怨的。