Javascript 如何在JS命名空间中的构造函数中使用JQuery?

Javascript 如何在JS命名空间中的构造函数中使用JQuery?,javascript,jquery,namespaces,Javascript,Jquery,Namespaces,好的,昨天我问了这个问题,但是我的代码中有一个愚蠢的错误,所以我最终得到了错误问题的答案 我想在javascript构造函数中使用JQuery,它位于名称空间中: var NS=NS||{}; NS.constructor=function() { this.problem="doing my head in" this.solution="looking very messy" function useJQuery() { $(documen

好的,昨天我问了这个问题,但是我的代码中有一个愚蠢的错误,所以我最终得到了错误问题的答案

我想在javascript构造函数中使用JQuery,它位于名称空间中:

var NS=NS||{};

NS.constructor=function()
{
    this.problem="doing my head in"
    this.solution="looking very messy"

    function useJQuery()
    {
        $(document).ready
        (
             function()
            {
                 $('body').html("I've written out the whole 'document ready function thing");
            }
         )
    }

    function usePlainJS()
    {
            return "Now I'm using plain JS";
    }

    function useJQueryAgain()
    {
        $(document).ready
        (
            function()
            {
                $('body').html("Now I've written out the 'document ready' thing AGAIN!");
            }
         )
    }
}


有没有更好的方法来做到这一点,而不是每次我想使用JQuery时都写出整个“文档准备就绪”的内容?

方法一。您可以避免重复的
$(文档)。如果将函数调用本身包装到
$(functionName)
中,则ready
块。例如:

var NS = NS || {};

NS.constructor = function() {   
    this.problem = "doing my head in"
    this.solution = "looking very messy"

    // Here is an example of usage this function
    $(useJQuery);

    function useJQuery() {
        $('body').html("I've written out the whole 'document ready function thing");
    }

    function usePlainJS() {
        return "Now I'm using plain JS";
    }

    function useJQueryAgain() {
        $('body').html("Now I've written out the 'document ready' thing AGAIN!");
    }
};

方法二。在关闭
标记之前,将所有代码放在DOM其余内容之后。这样,您就不必担心文档准备就绪,因为在执行脚本时,HTML结构已经可用。

这些函数的用途是什么?这似乎是最麻烦的事情:|最简单的解决方案:在
正文
末尾包含所有代码,并且不再担心
document.ready
。或者,初始化
文档中的所有名称空间内容。ready
@user2864740-这些函数的目的是向您演示我的问题。@DanLuba代码毫无意义,特别是因为它没有显示用法。这就是为什么我要求a/的目的(目前尚未演示)。@FelixKling-我尝试初始化文档中的名称空间内容。就绪,但由于范围问题,我的变量返回为未定义。啊-我现在明白了。谢谢费利克斯克林就是这么说的。是的,这很有道理。你上面写的代码看起来比我的好得多——不过,我不知道它到底在做什么。有没有可能让我看一下?
$(functionName)
$(document.ready(functionName)
相同。这与
functionName(){$(document).ready(function(){…}}}
时的
functionName()
相同。这有意义吗?几乎有意义。。。我不明白的是代码
$(useJQuery)
实际上在做什么。它没有调用函数,因为它没有
()
。调用并从内存中提取
useJQuery()
函数时,
$(useJQuery)
(在函数调用中似乎被绕过)如何影响useJQuery函数的执行?如果将函数传递到
$()
,则会发生以下情况:呸。。。我已经学习javascript和JQuery大约两周了,这些代码对我来说有点难理解。。。我会弄明白的。谢谢你的帮助,伙计。我会把这个标记为已回答,因为我有我一直在寻找的“如何”,即使我还没有理解“为什么”。