在Javascript中将行为附加到名称空间调用?

时间:2016-01-09 13:00:48

标签: javascript jquery namespaces attachedbehaviors

我在Javascript中非常平庸,并且环顾四周我无法找到有关如何实现我想要的行为的信息,或者甚至是否可能。

我有一个名称空间form来访问我的HTML表单:

var form = (function(){
    all   = function () $('#myform .entry');
    first = function () $('#myform .entry').first();
})();

form.all.css('color', 'blue');
form.first.css('color', 'red');

期望的额外行为:

form.css('background-color', 'green'); // should be calling $('#myform')

这可能吗?

1 个答案:

答案 0 :(得分:2)

你没有命名空间,你有一个包含函数的对象文字(现在你编辑了它,并添加了一个更难理解的IIFE),并且函数有返回一些能够使用它的东西

var form = {
    all : function () {
        return $('#myform .entry');
    },
    first : function () {
        return $('#myform .entry').first();
    }
}

form.all().css('color', 'blue');
form.first().css('color', 'red');

或者如果您希望将集合存储在对象中,而不是每次都在DOM中查找

var form = $('#myform');

form.all   = $('#myform .entry');
form.first = $('#myform .entry').first();

form.all.css('color', 'blue');
form.first.css('color', 'red');