不清楚javascript / jquery编程模式

时间:2013-11-13 07:20:33

标签: javascript jquery user-interface

我正在处理UI jsp页面中的Web项目。所有jquery / javascript方法都是通过这种模式调用的

A.b.c.d.methodName() 

在jsp页面中导入了许多.js文件。所以我必须在Eclipse IDE中搜索 跟踪方法js文件。

在js文件中,名称完全不同于“A.b.c.d”,该方法声明为

methodName: function()
{ // logic }

有谁能告诉我这种使用jquery的风格/模式是什么。

2 个答案:

答案 0 :(得分:1)

JavaScript永远不会查找文件名,您看到的“命名空间”是由作为属性彼此嵌套的对象实现的。

例如,如果您创建一个对象,如:

var A = {
    b: {
        c: {
            d: {
                methodName: function () {
                    console.log('What a nice method!');
                }
            }
        }
    }
};

您可以这样称呼它:

A.b.c.d.methodName();

或者您可以稍后在代码中添加方法:

var irrelevantName = function () {
    console.log('This method is even nicer');
};

A.b.c.method2 = irrelevantName;

并通过以下方式调用:

A.b.c.method2();

有很多使用的扩展方法已经出现在很多JavaScript框架中,比如jQueryMooTools。这提供了一种安全扩展对象的方法,同时保留原始值(如果存在)。

您可以使用jQuery,如:

$.extend(A.b.c.d, {
    method3: function () {
        console.log('An other nice method');
    }
});

正如您所料,它可以被称为:

A.b.c.d.method3();

JavaScript库通常使用命名空间:它们创建某种对象并使用其所有方法填充它。这样他们就可以don't pollute the global namespace使用他们的方法。

a lot of ways在JS中为对象添加新属性,因此将方法添加到对象并不总是很明显,但可以肯定地说文件名与它无关

有关该主题的进一步阅读,我建议this google search。基本上,前20个结果中的任何一个都应该解释如何在JavaScript中创建和使用命名空间。

在脚注上:我不确定Eclipse工具如何支持JS,但由于它不是一个小问题(对象结构可以动态修改),如果Eclipse不了解JavaScript,我不会感到惊讶命名空间。

答案 1 :(得分:0)

看起来它有某种命名空间。可以使用的代码可能是AMD模式吗?但同样,如果它是JSP,它可能会变老......

相关问题