相关疑难解决方法(0)

Javascript命名空间

我希望通过将其分成不同的文件并为每个文件提供一个"sub"命名空间来使我的javascript更加模块化.

subA.js

if(typeof ex == "undefined") {
    var ex = {};
}

ex.subA = function() {
//all functions of subA here
}
Run Code Online (Sandbox Code Playgroud)

对于subB等也一样

目前我有1个文件,ex.js

var ex = (function() {
    //private vars/funcs
    return {
        //public vars/funcs
    }
})();
Run Code Online (Sandbox Code Playgroud)

看起来我应该将大部分函数移动到subA.js和subB.js,但在开始时仍然包含ex.js,之后使用subA.js和subB.js.

我有很多问题.

  1. 我很难记住我是如何创建初始命名空间文件ex.js. 看起来匿名函数最初会使所有内容变为私有,但我不记得为什么需要将它括在括号中然后直接用最后执行();.

  2. 从q1开始,我的子文件是否应该与ex.js格式相同,即将anon函数包含在括号中并立即执行?

  3. 看起来子文件只能访问公共函数ex,这是真的吗?如果是,我如何允许我的子文件访问私有函数?

  4. 在我的HTML文件中,在我的document.ready函数(jQuery)中,我应该将ex初始化为变量还是可以通过继续单独调用每个函数

$(document).ready(function() {
    ex.doSomething();
    ex.doSomethingElse();
}

这两者有区别吗?我认为当包含ex.js时,会立即创建一个全局变量ex(由于匿名函数被立即执行),所以我不需要在document.ready中重新定义它.

  1. subA.js中的第一个if语句是否与var ex = ex || {};哪个更好?

  2. 你使用什么js代码风格标准?

如果你仔细阅读了所有这些,你就应该得到一个赞成,欢呼.

javascript jquery inheritance namespaces module

10
推荐指数
1
解决办法
2636
查看次数

如何运行名​​称空间内的JavaScript函数

如果我有类似的东西:

App = {
    editingMode: function ()
    {
        function setEditingMode(entityID) {
            $('#editingMode').val('1');
            $.ajax({
                type: "POST",
                url: "/Organisations/Manage/LockEntity/",
                data: "entityID=" + entityID
            });
        }
        function setEditingModeOff(entityID) {
            if ($("#myform").valid() == true)
            {
                $('#editingMode').val('0');
                $.ajax({
                    type: "POST",
                    url: "/Organisations/Manage/UnlockEntity/",
                    data: "entityID=" + entityID
                });
            }
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

我如何运行其中一个内部函数?

App.editingMode();但那我该怎么办呢setEditingMode

javascript

6
推荐指数
2
解决办法
452
查看次数

JavaScript名称范围

在您自己的名称范围内编写JavaScript意味着什么,显然它避免了冲突并符合W3C标准,但我不知道它意味着什么或如何完成?

javascript

1
推荐指数
2
解决办法
278
查看次数

标签 统计

javascript ×3

inheritance ×1

jquery ×1

module ×1

namespaces ×1