在jQuery中严格使用

时间:2013-09-16 09:37:14

标签: jquery strict

我正在'use strict';重写我的jQuery代码,我的功能遇到了很多问题。

var queue = $(function(start) {
    var rest = [].splice.call(arguments, 1),
                promise = $.Deferred();

    if (start) {
        $.when(start()).then(function () {
            queue.apply(window, rest);
        });
    } 
    else {
        promise.resolve();
    }
    return promise;
});

在'use strict'之前工作的原始函数是,也许我重写它很糟糕。

function queue(start) {
var rest = [].splice.call(arguments, 1),
    promise = $.Deferred();

if (start) {
    $.when(start()).then(function () {
        queue.apply(window, rest);
    });
} else {
    promise.resolve();
}
return promise;

}

这个函数返回Object没有方法适用,我不知道为什么。

当然我需要改进我的代码并且不知道如何开始,因为一切正常,然后我使用'use strict',并且所有休息。 我必须重写我的所有代码吗? 这只是一个命名约定问题?

请非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

我认为您的问题与“使用严格”无关。

var queue = $(function(start) { ... })

将执行您的函数并使用jQuery对象作为参数(start)调用它。然后在你的函数内部尝试调用queue.apply这不是函数(如错误消息所示,我猜queue未定义)。

也许你想写:

var queue = function() { ... }